weijun_zhang 发表于 2021-4-16 18:08:44

代码问题求助

想输入一串字符,过滤带*号的,打印出来。
这个代码很简单啊,我没看出下面写的有啥问题,为何运行结果就是不对?


#include <stdio.h>

int main()
{
      char s;
      int i;
      char ch;

                for (i = 0; (ch = getchar()) != '\n'; i++)
                {
                        s = ch;   //为字符数组循环赋值
                }
                if(s!='*')
                {
                         printf("s[]=%c",s);
                                }

      return 0;
}

ba21 发表于 2021-4-16 18:19:04

#include <stdio.h>

int main()
{
        char s={'\0'};
      int i;
      char ch;

                for (i = 0; (ch = getchar()) != '\n'; i++)
                {
                                        if (ch!='*')
                                        {
                        s = ch;   //为字符数组循环赋值
                                        }
                                        else
                                        {
                                                // 等于*的时候 数组要前移一位
                                                i--;
                                        }
                }


               printf("s[]=%s\n",s);


      return 0;
}
页: [1]
查看完整版本: 代码问题求助