c语言 输入一个字符串,一个个读入字符,再输出。
#include<stdio.h>main(){charstring[100];inti;printf("enterastring:");for(i=0;string[i...
#include<stdio.h>
main(){
char string[100];
int i;
printf("enter a string:");
for ( i=0;string[i]!='\0';i++);
scanf("%c",&string[i]);
for ( i=0;string[i]!='\0';i++);
printf("%c",string[i]);
}
哪里不对? 展开
main(){
char string[100];
int i;
printf("enter a string:");
for ( i=0;string[i]!='\0';i++);
scanf("%c",&string[i]);
for ( i=0;string[i]!='\0';i++);
printf("%c",string[i]);
}
哪里不对? 展开
9个回答
展开全部
for ( i=0;string[i]!='\0';i++); //分号去掉
for ( i=0;string[i]!='\0';i++); // 分号去掉
'\0' 不好判断。scanf 读不进 '\n' ,遇到 '\n' 要你再输入东西。
改用 getchar() 较好。
#include <stdio.h>
#include<stdlib.h>
main(){ char s[100];
int i;
printf("enter a string:");
i=0;
while(1){
s[i]=getchar();
if (s[i]=='\n')break;
i++;
}
s[i] ='\0';
printf("%s",s);
}
for ( i=0;string[i]!='\0';i++); // 分号去掉
'\0' 不好判断。scanf 读不进 '\n' ,遇到 '\n' 要你再输入东西。
改用 getchar() 较好。
#include <stdio.h>
#include<stdlib.h>
main(){ char s[100];
int i;
printf("enter a string:");
i=0;
while(1){
s[i]=getchar();
if (s[i]=='\n')break;
i++;
}
s[i] ='\0';
printf("%s",s);
}
展开全部
for(i=0;string[i]!='\0';i++);有逻辑错误。string[i]中一个字符都没有放入,你怎么就判断是不是'\0'?这中使用未初始化的变量!并在最后多了个分号。用数字控制吧,改成for(i=0;i<30;i++)。
for ( i=0;string[i]!='\0';i++);后面也多了个分号,去掉。
把char string[100];改成char string[100]="";就好了。
for ( i=0;string[i]!='\0';i++);后面也多了个分号,去掉。
把char string[100];改成char string[100]="";就好了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
稍微改动即可:
#include<stdio.h>
main(){
char string[100]={'\0'};
int i;
printf("enter a string:");
for ( i=0;string[i-1]!='\n';i++)
scanf("%c",&string[i]);
for ( i=0;string[i]!='\0';i++)
printf("%c",string[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大哥哥啊,'\0'是不可输入字符呀,你可以改成别的asscii码,比如'\n',还有啦,看看你for后面的分号,编译运行下小弟给的代码。
#include<stdio.h>
int main()
{
char string[100];
int i;
printf("enter a string:");
for ( i=0;scanf("%c",&string[i]),string[i]!='\n';i++);
for ( i=0;string[i]!='\n';i++)
printf("%c",string[i]);
printf("\n");
return 0;
}
合乎要求吧,不过你想把回车也读进去,就用EOF,记得用ctrl+c结束哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个错误:for后面的分号
第二个错误:在为string[i]赋值前,string[i] !='\0'条件恒成立,相当于死循环
可以改成do--while()
do{
scanf("%c",&string[i]);
i++;
}while(i<100&& string[i-1]!='\0');
第二个错误:在为string[i]赋值前,string[i] !='\0'条件恒成立,相当于死循环
可以改成do--while()
do{
scanf("%c",&string[i]);
i++;
}while(i<100&& string[i-1]!='\0');
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询