c语言 字符串逆序输出
答案:2 悬赏:10
解决时间 2021-01-08 05:14
- 提问者网友:欲望失宠
- 2021-01-07 08:14
c语言 字符串逆序输出
最佳答案
- 二级知识专家网友:神也偏爱
- 2021-01-07 09:51
#include
#include
void main(void)
{
char string1[100],string2[100];
int i, k;
printf("Enter a string:");
gets(string1);
k = strlen(string1);
for (i=0;string1[i]!='\0';i++)
{
string2[i]=string1[k-1-i];
}
string2[i] = '\0';
printf("Output:");
printf("%s",string2);
}
优化一下:
#include
#include
void main(void)
{
char string[100];
int i, j, k;
char t;
printf("Enter a string:");
gets(string);
k = strlen(string);
j = k/2;
for (i=0;i {
t = string[i];
string[i] = string[k-1-i];
string[k-1-i] = t;
}
string[k] = '\0';
printf("Output:");
printf("%s",string2);
}追问为什么要加 string2[i] = '\0'; 这句?追答两个原因:
1、string2你没有做任何的initialize,里面的数据是乱的;
2、string1 ==> string2的时候,程序仅仅关注了有效字符,没有考虑到string1作为一个字符串来说还有一个结束符号'\0'。因为程序的要求是“字符串逆序”所以务必保证string2也是一个string才行,否则离题了
#include
void main(void)
{
char string1[100],string2[100];
int i, k;
printf("Enter a string:");
gets(string1);
k = strlen(string1);
for (i=0;string1[i]!='\0';i++)
{
string2[i]=string1[k-1-i];
}
string2[i] = '\0';
printf("Output:");
printf("%s",string2);
}
优化一下:
#include
#include
void main(void)
{
char string[100];
int i, j, k;
char t;
printf("Enter a string:");
gets(string);
k = strlen(string);
j = k/2;
for (i=0;i
t = string[i];
string[i] = string[k-1-i];
string[k-1-i] = t;
}
string[k] = '\0';
printf("Output:");
printf("%s",string2);
}追问为什么要加 string2[i] = '\0'; 这句?追答两个原因:
1、string2你没有做任何的initialize,里面的数据是乱的;
2、string1 ==> string2的时候,程序仅仅关注了有效字符,没有考虑到string1作为一个字符串来说还有一个结束符号'\0'。因为程序的要求是“字符串逆序”所以务必保证string2也是一个string才行,否则离题了
全部回答
- 1楼网友:蓝房子
- 2021-01-07 11:16
在string2的结尾加上一个'\0'
string2[...] = '\0'
string2[...] = '\0'
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯