C语言字符串输出的一个bug疑问

在练习C语言编程的字符串的习题中,发现仅仅当最大限制读取数为个别数字的时候,输出结尾会有一些奇怪的符号,对此我选取了几组数据进行了相应测试,希望各位帮忙解释一下。

#include 
#define SIZE 80
char *getword(char *st,int n);

int main(){
    char output1[SIZE];
    char output2[SIZE];
    char output3[SIZE];
    char output4[SIZE];
    getword(output1,8);
    puts(output1);    
    getword(output2,2);
    puts(output2);    
    getword(output3,17);
    puts(output3);
    getword(output4,32);
    puts(output4);
    return 0;
}

char *getword(char *st,int n){
    char input[SIZE];
    char *in=input;
    int i=0;
    
    puts("Enter a string:");
    fgets(input,SIZE,stdin);
    while((*in=='\n'||*in=='\t'||*in==' ')&&*in!='\0'){
        in++;
    }
    while(*in!='\n'&&*in!='\0'&&*in!=' '&&*in!='\t'&&i

以下是测试的结果:

C语言字符串输出的一个bug疑问_第1张图片

你可能感兴趣的:(bug,c语言)