首页 > 试题广场 >

字符串反转

[编程题]字符串反转
  • 热度指数:399216 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)


输入描述:

输入一行,为一个只包含小写字母的字符串。



输出描述:

输出该字符串反转后的字符串。

示例1

输入

abcd

输出

dcba
//ctype函数好用,建议使用
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
    char strr[1001] = "\0"; //加一个位置是给\n的

    fgets(strr, sizeof(strr), stdin);
    strr[strcspn(strr, "\n")] = '\0'; //把\n替换为\0

    int len = strlen(strr);

    //逐个检查,确保每一个字符都是小写
    for (int i = 0; i < len; i++ ) {
        if (! islower(strr[i]) ) {
            return -1;
        }
    }

    //倒序逐个打印
    for (int j = len - 1; j >= 0; j--) {
        printf("%c", strr[j]);
    }
}


发表于 2024-04-05 20:46:43 回复(0)
#include <stdio.h>
#include "string.h"
int main()
{
    char str[1000];
    scanf("%s", str);
    int i;
    i = strlen(str)-1;
    for(; i >= 0; i--)
    {
        printf("%c", str[i]);
    }
}

编辑于 2024-03-21 22:48:53 回复(0)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void prin(char*p,int i)
{
    if((p[i+1]!='\0')&&(p[i+1]!='\n'))
    {
        prin(p,i+1);
    }
    printf("%c",p[i]);
}
int main() {
    char arr[1001];
    fgets(arr,sizeof(arr),stdin);
    prin(arr,0);
    return 0;
}

编辑于 2023-12-12 19:15:50 回复(0)
#include <stdio.h>
int main() {
    char s[1000] = {'\0'};int i;
    gets(s);
    for( i=999; s[i]=='\0'; i--);
    for(; i>=0; i--)putchar(s[i]);
    return 0;
}

编辑于 2023-12-02 00:03:39 回复(0)
思路:字符串不管用数组存,还是申请内存存,输出的时候从后往前单个字符输出即可。
需要注意的点:使用fgets和gets都是从stdin获取1行,但gets回去掉换行符\n,而fgets回保留\n。
发表于 2023-11-25 16:57:06 回复(0)
#include <stdio.h>
#include <string.h>

int main()
{
    char str1[1000] ;

    char *str1_p = str1;    

    gets(str1);

    int m = strlen(str1);

    int j=1;

    for(int i=0;i < m; i++)

    {

       

        printf("%c",*(str1_p+m-j));

       
        j++;
   
    }


        printf("\n");

        return 0;
}
发表于 2023-11-15 00:13:25 回复(0)
有个问题为什么用fgets会有一个用例没通过呢?求大佬解答
#include <stdio.h>
#include <string.h>
int main() {
    char str[1001]={0};
    fgets(str,1001,stdin);
    for(int i=strlen(str)-2;i>=0;i--)
    {
        printf("%c",str[i]);
    }
    return 0;
}
发表于 2023-09-04 11:54:10 回复(2)
#include <stdio.h>
#include <string.h>

int main() {
    char str[1001]={0};
    gets(str);
    for(int i=strlen(str)-1;i>=0;i--)
    {
        printf("%c",str[i]);
    }
    return 0;
}
发表于 2023-09-02 21:30:56 回复(0)
/**  题目:HJ12 字符串反转
  *  思路:以 字符串形式 输入 字符串,逆序输出单个字符
  */
#include <stdio.h>
#include <string.h>

int main() {
    char str[1001];
    int len;

    gets(str);
    len = strlen(str) - 1;

    //  逆序输出
    for(;len >= 0; len--) {
        printf("%c",str[len]);
    }
    printf("\n");

    return 0;
}

发表于 2023-03-28 18:49:11 回复(1)
#include <stdio.h>

int main() {
    char arr[1001]={0};
    scanf("%s",arr);
    for(int i=strlen(arr)-1;i>=0;i--)   //从后往前输出
    {
        printf("%c",arr[i]);
    }
    return 0;
}
发表于 2023-02-28 19:52:31 回复(0)
C初学者,不调用指针
#include <stdio.h>
int main() {
    char a[1000],b[1000];
    int i,j,m=0;
    scanf("%s",&a);
    while(a[m]>=97&&a[m]<=122)
    {m++;}//计算输入字符串的长度
    for(j=0,i=m-1;j<=m-1;j++,i--)
    {
            b[j]=a[i];
    }
    b[j]='\0';
    printf("%s\n",b);
    return 0;
}

发表于 2023-02-27 18:31:10 回复(0)
int main(void){
    char a[1000] = {};
    gets(a);
    int count = strlen(a);
    int i = 0;
    for(i=count-1;i >= 0;i--){
        printf("%c", a[i]);
        
    }
    
    return 0;
}

发表于 2022-08-24 20:42:33 回复(0)
// 直接用上一题的解法
#include <stdio.h>
 
int main()
{
  char sour[1000] ={0};
  char *p;
   
  scanf("%s", &sour);
  p = sour;
  while(*p) p++;
  do
  {
    p--;
    printf("%c", *p);
  }while(p != sour);
}

发表于 2022-06-29 17:39:54 回复(0)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
    char str[1024] = {'\0'};
    scanf("%s",str);
    int i = 0,tmp;
    int j = strlen(str) -1;
    for(i = 0;i <= j;i++,j--)
    {
        if(str[i] < 'a' || str[j] <'a' || str[i] >'z' ||str[j] > 'z') return -1;
        tmp = str[i];
        str[i] = str[j];
        str[j] = tmp;
    }
    printf("%s\n",str);
    return 0;
}
发表于 2022-06-16 11:58:06 回复(0)
#include <stdio.h>
#include <string.h>
int main() {
    char str[1001] = {0};
    // scanf("%s", str);
    gets(str);
    for (int i = strlen(str)-1; i >= 0; i--)
    {
        printf("%c", str[i]);
    }
}

发表于 2022-04-21 12:13:32 回复(0)
#include<stdio.h>
#include<string.h>

int main()
{
    char val[1000];

// 输入一行,为一个只包含小写字母的字符串.(字符串长度不超过1000)
    scanf("%s",val);
// 输出该字符串反转后的字符串。
    for(int i=strlen(val)-1; i>=0; i--){
        printf("%c",val[i]);
    }
    return 0;
}
发表于 2022-03-31 22:12:41 回复(0)
#include<stdio.h>
#include<string.h>
char* my_reverse(char* arr,int len)
{
    char* left=arr;
    char* right=arr+len-1;
    char* ret=arr;
    while(left<right)
    {
        char temp=*left;
        *left=*right;
        *right=temp;
        left++;
        right--;
    }
    return ret;
}
int main()
{
    char arr[1000]={0};
    gets(arr);
    int len=strlen(arr);
    printf("%s\n",my_reverse(arr,len));
    return 0;
}

发表于 2022-03-21 01:31:35 回复(0)
#include "stdio.h"
#include "string.h"
int main()
{
    char str[1000];
    gets(str);
    int len=strlen(str);
    for(int i=len-1;i>=0;i--)
    {
        printf("%c",str[i]);
    }
}
发表于 2022-01-11 16:03:11 回复(0)

问题信息

难度:
35条回答 83674浏览

热门推荐

通过挑战的用户

查看代码