C语言:scanf()、getchar()、gets()
一、gets()
gets()能吸收空格和换行,因此输入后,对输出要去除空格' '和换行'\n';
#include <stdio.h>
#include <string.h>
int main()
{char str[1000];int count=0;gets(str);for(int i=0;i<strlen(str);i++)count++;printf("%s\n",str);printf("%d",count);return 0;
}
输入:ca 1
输出:ca 1
4
二、getchar()
int main()
{int ch;int count=0;while((ch = getchar()) != EOF){count++;}printf("%d",count);return 0;
}
输入:ca 1
输出:5
int main()
{int ch;int count=0;while((ch = getchar()) != EOF){if(ch!='\n')count++;}printf("%d",count);return 0;
}
输入:ca 1
输出:4
三、scanf()
scanf()不能吸收空格和换行;
遇到空格停止;
int main()
{char str[1000];int count=0;while(scanf("%s",str)!=EOF){for(int i=0;i<strlen(str);i++){count++;}}printf("%d",count);return 0;
}
输入:ca 1
输出:3
int main()
{char str[1000];int count=0;scanf("%s",str);printf("%s",str);return 0;
}
输入:ca 1
输出:ca
int main()
{char arr[5] = {0};for(int i=0; i<5; i++){scanf("%c", &arr[i]);}printf("%s", arr);return 0;
}
输入:ca 1
输出:ca 1