版权声明:本文为作者创作,转载请注明出处:http://blog.csdn.net/claroja,如有商业用途请联系QQ:63183535。 https://blog.csdn.net/claroja/article/details/88742517
字符数组打印
在printf
时,遇到\0
会停止打印
字符串常量""在输入数组时会自动在末尾加入’\0’也就是说,字符串常量在内存的长度是多一个字节的
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char arr[10] = { 'h','e','l','l','o' };
//%s遇到'\0'就会停止打印,而在ascii中'\0'就是数字0(数组未初始化的值都是0)
printf("%s\n", arr);
char arr1[]= { 'h','e','l','l','o' };//这里只输入了5个字符'h' 'e' 'l' 'l' 'o'
char arr2[] = "hello";//这里输入了六个字符"hello"和"\0"
printf("%d\t%d\n", sizeof(arr1),sizeof(arr2));
printf("%s\n", arr1);//因为arr1数组里没有'\0'所以会继续打印一直到有'\0'为止
system("pause");
return 0;
}
scanf
scanf
遇到空格
会停止输入,所以需要设置$[^n]
,该符号的含义是非换行符都被读入
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char arr[100];
scanf("%s", arr);
printf("%s\n", arr);
system("pause");
char arr1[100];
scanf("%[^\n]", arr1);
printf("%s\n", arr1);
system("pause");
return 0;
}