C语言 字符串数组

版权声明:本文为作者创作,转载请注明出处: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;
}

猜你喜欢

转载自blog.csdn.net/claroja/article/details/88742517