Blizzard0319 发表于 2021-8-23 16:08:00

带你学C带你飞19讲求助

#include<stdio.h>
#include<string.h>

int main()
{
        char ch,ch1;
        int i,n = 0;
        int a =0;
        printf("请输入一行文本:");
       
        while((ch = getchar()) != '\n'){
                ch1 = ch;
                if(ch == ' '){
                        a = 1;//判断是否存在空格
                }
                n += 1;
                if (n >= 22){
                        break;
                }
}

        for(i = 19;a = 1&&i >= 0;i--){
                if (ch1 == ' ' && ch1 != ' '){//找到最近的空格位
                        ch1 = '\0';
                }
        }

       
        printf("你输入的文本是:%s\n",ch1);
       
        return 0;
}
为什么输入FishC.com打印出来会有乱码?

大马强 发表于 2021-8-23 16:41:26

你的最后一位没有设置终止符

大马强 发表于 2021-8-23 16:43:36

#include<stdio.h>
#include<string.h>

int main()
{
      char ch,ch1;
      int i,n = 0;
      int a =0,flag=1; //判断是否
      printf("请输入一行文本:");
      
      while((ch = getchar()) != '\n'){
                ch1 = ch;
                if(ch == ' '){
                        a = 1;//判断是否存在空格
                }
                n += 1;
                if (n >= 22){
                        break;
                }
}

      for(i = 19;a = 1&&i >= 0;i--){
                if (ch1 == ' ' && ch1 != ' '){//找到最近的空格位
                        ch1 = '\0';
                        flag=0;
                }
      }
      

      if (flag)
              ch1 = '\0';
      printf("你输入的文本是:%s",ch1);
      
      return 0;
}
页: [1]
查看完整版本: 带你学C带你飞19讲求助