getchar()是用来输入一个字符的,以回车代表输入结束。
gets()是用来输入字符串的,以回车代表输入结束 。
scanf()是什么都可以输入,以回车代表输入结束 ,
只输入单个情况下,遇到空格也会结束,如:
scanf("%d",&a[i]);
输入1 2 3 4 5,会忽略空格,依次存入a[0]~a[4].
scanf()中空格 可用作分隔符, 当scanf()输入多个变量时,
如 scanf("%d %d",&a,&b);//表示输入两个整形的数分别赋给变量a、b 在输入另个数时用空格间隔开,但如果scanf("%d,%d",&a,&b);//如果两个%d中间用逗号间隔,那么输入时也必须用逗号作为两个数间隔。
\n表示回车,即换行
\0为字符串结束标志。
int main (void) {
char s[] = "10";
printf ("%s\n", s); //"10"
printf ("%d\n", s[1]); // '0'
printf ("%d\n", s[2]); // '\0'
return 0;
}
输出:
10
48
0
这个'\0'就是acsii码的0,
字符串中的0,ascii码的编号是48
char str[]={'1','8','f','0'};//不是一个字符串 只是一个字符数组; char ch[]={'1','8','f','0','\0'};//这个就表示一个字符串
C语言中,gets() 和scanf()的区别在于输入的字符串是否中间有空格:对于前者,只有遇到"\n"时才停止输入,而对于后者,出现"\n"或空格都停止输入
“NULL” 只是一个用来表示空指针的宏定义,跟这个没有太大关系。虽然 (NULL == '\0') 这个表达式返回的是“真”,但这两者完全不是一个意义。
return(0)表示程序正常退出,其他数字如return 1为非正常退出,同理exit(0)。