C language character array

1 Character array initialization

1.1 Initializing the length of the specified character array

EG:

	char s1[5] = { 'C','h','i','n','a' };
	char s2[6] = { "China" };  //系统默认在字符串后面加上一个字符串结束标志符'\0',所以最少需要6个长度的字符数组才能容纳

1.2 The length of the character array is determined by the length of the initialization character or string

EG:

	char s1[] = { 'C','h','i','n','a' };  //字符数组s1长度为5
	char s2[] = { "China" };  //字符数组s2长度,系统默认在字符串后面加上一个字符串结束标志符'\0'

2 String input and output

2.1 printf print character array

EG:

	char s1[5] = { 'C','h','i','n','a' };
	char s2[6] = { "China" };

	printf("s1: %s\n", s1);  //打印内容不确定,因为字符串的结束标志位'\0'
	printf("s2: %s\n", s2);  //打印"China"

2.2 String input

EG:

	char s1[20];
	char s2[20];
	char s3[20];

	scanf("%s%s%s", s1, s2, s3);  //每个字符串以换行符或者空格分隔,并且自动在每个字符串后面加上'\0'

	cout << s1 << endl;
	cout << s2 << endl;
	cout << s3 << endl;

 

3 Common character processing functions

3.1 The length of the string

EG:

	//strlen(s) 函数返回的字符串的长度(与存储的内容有关),单位是字节数
	char s1[20] = { 'C','h','i','n','a' };
	char s2[20] = { "China" };
	char s3[20] = { "我爱中国" };

	printf("s1的长度:%d\n", strlen(s1));  //长度不确定
	printf("s1的长度:%d\n", strlen(s2));  //打印9,字符串的长度计算:从字符串开始直到遇到'\0',不包括'\0'
	printf("s1的长度:%d\n", strlen(s3));  //返回的字符串的长度单位是字节

	//补充 strlen与sizeof的区别
	//strlen是一个函数,sizeof 是一个关键字
	//strlen返回字符串的长度(与存储内容有关),sizeof返回内存的实际长度(与存储内容无关)

3.2 String stitching function

EG:

	char s1[10] = { "Chi" };
	char s2[10] = { "na" };
	strcat(s1, s2);  //将s2中的字符串拼接到字符串s1后面

	printf("%s\n", s1); //打印 "China"

3.3 Assignment functions for strings

EG:

	char s1[10] = "123";
	char s2[10] = "678"; //定义时可以使用字符串常量进行初始化

	//s1 = "678";  //不可以使用字符串常量为字符数组赋值
	strcpy(s1, "456");  //将"456"挪到s1执行的内存,s1中原来的内容被覆盖
	puts(s1);
	strcpy(s1, s2);
	puts(s1);

3.4 String comparison function

EG:

	//strcmp(s1,s2) 函数用法:
	 //1. s1 == s2  返回0
	 //2. s1 < s2   返回正整数
	 //3. s1 > s2   返回负整数

	//strcmp函数一般不用来比较字符串大小,常用于比较字符串是否相等

	char s1[] = "123";
	char s2[] = "123";

	if (strcmp(s1, s2) == 0)
	{
		puts("s1和s2相等");
	}
	else
	{
		puts("s1和s2不相等");
	}

 

Published 123 original articles · praised 31 · 90,000 views +

Guess you like

Origin blog.csdn.net/qq_40794602/article/details/104086123