为什么空格后的字符串打不出来呢?

img

因为字符数组读到空格就停止了,所以只输出空格前的,读入一行用gets()

#include <stdio.h>
#include <math.h>

void main()
{
    char s[50];
    //scanf("%s",s);
    gets(s);
    printf("%s",s);
}

img

scanf("%s",str);方式输入,遇到空格就表示输入结束了,改为如下方式:

scanf("%[^\n]",str);这样空格就可以当字符串内容了,直到回车才结束

scanf输入字符串以空格,tab等字符作为结束。所以你输入的字符串是“jgj” 要全部输入需要循环用getchar

int getline_(char s[],int lim){
    int c,i;
    i=0;
    while((c=getchar())!=EOF&&c!='\n'&&i<lim-1)
        s[i++]=c;
    s[i]='\0';
    return i;
}