Deerainy 2022-11-19 13:18 采纳率: 100%
浏览 1
已结题

输入不了完整句子,且必须也只能输入11个字符

问题遇到的现象和发生背景

输不了完整的句子,且必须也只能输入11个字符

用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#define ARR_SIZE 80
void Squeeze(char str[],char ch);

int main()
{
    /*********begin*********/
     char str[ARR_SIZE];
     char ch;
     int i=0;
     for(i=0;str[i]!='\0';i++)
     {
         scanf("%c",&str[i]);
     }
      for(i=0;str[i]!='\0';i++)
        printf("%c",str[i]);
        printf("\n");
             fflush(stdin);
     scanf("%c",&ch);
     printf("%c\n",ch);
     Squeeze(str,ch);
     return 0;
    /*********end*********/
}

void Squeeze(char str[],char ch)
{
    /*********begin*********/
    int i=0;
     char b[80]; //存放删除指定的字符后的字符串
    int j=0; //指向b数组
for(i=0;str[i]!='\0';i++)
    {
        if(str[i] !=ch) //拷贝
    {
        b[j] = str[i];
        j++;
        printf("%d^\n",j);
    }
    }
    b[j]='\0';
    printf("%s",b);
    /*********end*********/
}

运行结果及报错内容

img

img

我的解答思路和尝试过的方法

上面代码就是

我想要达到的结果 能完整输入I am a student.
  • 写回答

3条回答 默认 最新

  • 叶落花枯 2022-11-19 13:34
    关注
    
    for(i=0;i<ARR_SIZE;i++)
    {
        scanf("%c",&str[i]);
        if(str[i]=='\n') //回车结束输入
            break;
    }
    str[i]='\0'; //字符串最后的结束符\0
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 已采纳回答 11月19日
  • 创建了问题 11月19日