反转输出字符串
#include<stdio.h>int main(void)
{
int i;
printf("请输入字符串:\n");
char str;
for(i=0;i<5;i++)
{
printf("str[%d]=\n",i);
scanf("%s",&str);
}
char restr;
for(i=0;i<5;i++)
{
restr=str;
}
for(i=0;i<5;i++)
{
printf("restr[%d]=",i,restr);
}
return 0;
}
大神们,为什么没有输出? 没有输出是因为restr字符串没有结束符 '\0',在你的基础上修改了一下
#include<stdio.h>
int main(void)
{
char str;
char restr;
int i=0;
printf("请输入字符串:\n");
scanf("%s",str);
for(i=0;i<5;i++)
{
restr=str;
}
restr = '\0';
printf("%s\n",restr);
return 0;
}
其实代码逻辑是没有问题的,只是一些语法问题
首先,scanf输入%s是后面的字符数组是不需要加&的,也不需要用for循环,也不需要输入提示
然后,楼主你那个 printf("restr[%d]=",i,restr);这里应该在等号后面加一个%c
修改后如下
#include<stdio.h>
int main(void)
{
int i;
printf("请输入字符串:\n");
char str;
scanf("%s",str);
char restr;
for(i=0;i<5;i++)
{
restr=str;
}
for(i=0;i<5;i++)
{
printf("restr[%d]=%c\n",i,restr);
}
return 0;
} 数组其实是地址,第十行应该用%c和str而不是%s和str;或者不用循环了直接存入str。
倒数第四行printf("restr[%d]=",i,restr);少了个"%c".
另外,字符串应该留一个结束符号\0而不是全都塞满
小甲鱼的铁粉 发表于 2020-6-9 23:11
其实代码逻辑是没有问题的,只是一些语法问题
首先,scanf输入%s是后面的字符数组是不需要加&的,也不需要 ...
请问第12行,需要考虑最后一个“\0”占用一个位置吗? 晓觉懿 发表于 2020-6-10 15:58
请问第12行,需要考虑最后一个“\0”占用一个位置吗?
应该是需要的,不同的编译器需求不同吧
页:
[1]