2

当我 printf 变量答案时,它包含几个奇怪的字符。可能是什么原因?

int flag=0;
char answer[512];
char a[2];
a[1]='\0';

int c;
int status=1;
do {
      c = fgetc(pp);
      if( feof(pp) ) {
         break ;
        }
        if(c=='F' || status==0){
                a[0]=(char)c;
                strcat(answer,a);
                status=0;
        }
   } while(TRUE);
4

1 回答 1

2

strcat期望目标字符串是有效的——这意味着它必须是空终止的。您没有明确地为空终止answer字符串。answer[0]=0在循环之前添加。

于 2017-12-14T01:43:07.957 回答