#include
int main()
{
int i;
char String[20];
char Reverse[]={0};
printf("请输入字符串");
gets(String);
printf("你所输入的字符串为%s\n",String);
int size;
size=sizeof(String);
for(i=0;i<size-1;i++)
{
Reverse[size-i-2]=String[i];
}
printf("输出源字符串:%s\n",String);
printf("输出目标字符串:%s\n",Reverse);
return 0;
}
修改后的代码如下,关键处有注释:
int main()
{
int i;
char String[20];
char Reverse[20] = { 0 }; //原代码Reverse大小为1
printf("请输入字符串");
gets_s(String);
printf("你所输入的字符串为%s\n", String);
int size;
size = strlen(String); //用strlen库函数获取输入字符串的长度,需包含string.h头文件
for (i = 0; i < size ; i++) //循环终止条件及循环体写法应修改为此
{
Reverse[size-i-1] = String[i];
}
printf("输出源字符串:%s\n", String);
printf("输出目标字符串:%s\n", Reverse);
return 0;
}
如果对您有帮助,请采纳答案好吗,谢谢!
char Reverse[]={0};这里只定义了一个位置,改改,char Reverse[20];
#include
#include
int main(int argc, char *argv[]) {
int i;
char String[20];
char Reverse[20];
printf("请输入字符串\n");
gets(String);
printf("你所输入的字符串为 %s\n",String);
int p=0;
for(i=19;i>=0;i--)
{
Reverse[19-i] = String[i];
printf("%c ",String[i]);
}
Reverse[19]='\0';
printf("输出源字符串 %s\n",String);
printf("输出目标字符串 %s\n",Reverse);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i;
char String[20];
char Reverse[20];
printf("请输入字符串\n");
gets(String);
printf("你所输入的字符串为 %s\n",String);
int p=0;
for(i=19;i>=0;i--)
{
Reverse[19-i] = String[i];
printf("%c ",String[i]);
}
Reverse[19]='\0';
printf("输出源字符串 %s\n",String);
printf("输出目标字符串 %s\n",Reverse);
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
int i,j;
char String[20];
char Reverse[20];
printf("请输入字符串");
gets(String);
printf("你所输入的字符串为%s\n",String);
int size;
j=size=strlen(String);
for(i=0;i<size;i++,j--)
{
Reverse[i]=String[j-1];
}
Reverse[size]='\0';
printf("reverse:");
puts(Reverse);
printf("\n");
return 0;
}
for循环只的结束条件从size-1改成( size-1)/2