中易网

c语言 字符串逆序输出

答案:2  悬赏:10  
解决时间 2021-01-08 05:14
c语言 字符串逆序输出
最佳答案
#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才行,否则离题了
全部回答
在string2的结尾加上一个'\0'
string2[...] = '\0'
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天运五行属水,一生难发展,是什么意思。
WOW十区末日行者人多吗?
“余尚得天下”“推而行之谓之通”.出自哪里
农村家里自制淋浴房图
邮政跨行异地转账手续费多少
国历19970802生的,生日是农历几月几号
中石化森美(南靖船场加油站)地址有知道的么?
三星eg920l耳机苹果手机可以用吗?
谁可以告诉我所有林正英拍过的电影和电视剧.
石家庄盛世天骄小区是合作路小学 28中的片内
尾矿库应当每多少年至少进行一次安全评价
描写人物词,句
收钱码领过一次了 可以再领一次吗?
有一个一直砍树枝的游戏叫啥
文玩迷怎么撤回出价
推荐资讯
洪雅在哪里?
恐龙分为哪几类?
je m'apelle justine法语意思
求购SONY音响LBT-A60组合
柴烧成的灰能当植物的肥料吗
龙之谷手游结婚系统什么时候出
琥珀里会不会存在气泡?
恋爱的初衷是什么
为什么四色印刷中黑色用K表示
山西十二月事变
考研英语历年考试的 阅读 part b 部分分别是
神武宠物排位赛怎么样可以让排名往后
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?