fledgling 发表于 2021-3-5 10:37:55

for循环的运用

想要编写:输入一段字符,然后按照原样输出字符,但是结果和预想不一样:这是代码:
#include<stdio.h>
int main()
{
printf("请输入一段字符:");
char a;
for(;a=getchar()!='\n';)
        printf("%s",a);

return 0;
}把printf("%s",a)换成printf("%c",a),又是不同的结果
#include<stdio.h>
int main()
{
printf("请输入一段字符:");
char a;
for(;a=getchar()!='\n';)
        printf("%c",a);

return 0;
}为什么?哪里错了?

jackz007 发表于 2021-3-5 10:53:13

本帖最后由 jackz007 于 2021-3-5 10:56 编辑

      写法问题
a = getchar() != '\n'
      应该改成这样
(a = getchar()) != '\n'
      这是改好的代码
#include<stdio.h>
int main()
{
      char a                                          ;
      printf("请输入一段字符:")                        ;
      for(; (a = getchar()) != '\n' ;) printf("%c" , a) ;   // 此句不同
}
      编译、运行实况
D:\0002.Exercise\C>g++ -o x x.c

D:\0002.Exercise\C>x
请输入一段字符:I'm you brother !
I'm you brother !
D:\0002.Exercise\C>

fledgling 发表于 2021-3-5 11:12:24

jackz007 发表于 2021-3-5 10:53
写法问题

      应该改成这样


多谢多谢!

fledgling 发表于 2021-3-5 11:15:53

fledgling 发表于 2021-3-5 11:12
多谢多谢!

还有一点点疑问,为什么输出单个字符%c就能正常运行,以字符串输出%s输出就什么都不显示呢?
页: [1]
查看完整版本: for循环的运用