- 定义和初始化:
- 定义:字符数组是用来存放字符数据的数组,其定义方式与其他类型数组类似,例如
char c[10];
。 - 初始化:可以逐个字符赋给数组中各元素,如
char c[10] = {'I', ', 'a', '', ', 'h', 'a', 'p', 'p', 'y'};
;也可以用字符串常量来初始化字符数组,如char c[] = "I am happy";
,此时数组长度会自动根据字符串长度确定,并在末尾加上字符串结束标志'\0'
。
- 定义:字符数组是用来存放字符数据的数组,其定义方式与其他类型数组类似,例如
- 引用:可以通过数组名和下标来引用字符数组中的元素,得到一个字符,例如
char c[10] = {'I', ', 'a', '', ', 'h', 'a', 'p', 'p', 'y'}; int i; for (i = 0; i < 10; i++) printf("%c", c[i]);
。 - 字符串和字符串结束标志:
- 字符串在C语言中的处理方式:C语言将字符串作为字符数组来处理,字符串中的字符逐个存放到数组元素中,系统会自动在字符串末尾添加
'\0'
作为结束标志。 - 字符串结束标志的作用:在输出字符串时,遇到
'\0'
就停止输出,例如char c[] = "China"; printf("%s", c);
,输出结果为China
,不包括'\0'
。 - 通过字符串常量初始化字符数组时的注意事项:若使用
char c[10] = "China";
初始化,数组c
的前5个元素为'C'、'h'、'i'、'n'、'a',第6个元素为'\0'
,后4个元素也设定为空字符。
- 字符串在C语言中的处理方式:C语言将字符串作为字符数组来处理,字符串中的字符逐个存放到数组元素中,系统会自动在字符串末尾添加
- 字符数组的输入输出:
- 输入:可以使用
scanf
函数输入字符数组,但要注意输入的字符串应短于已定义的字符数组长度,且scanf
函数中的输入项如果是字符数组名,不要再加地址符&
。 - 输出:可以逐个字符输出,也可以用
"%s"
格式符一次输出整个字符串,但要注意输出字符不包括结束符'\0'
,且printf
函数中的输出项是字符数组名,而不是数组元素名。
- 输入:可以使用
- 字符串处理函数:
- puts函数:其一般形式为
puts(字符数组)
,作用是将一个字符串(以'\0'
结束的字符序列)输出到终端,例如char str[] = "Hello"; puts(str);
。 - gets函数:其一般形式为
gets(字符数组)
,从终端输入一个字符串到字符数组,并得到一个函数值,该函数值是字符数组的起始地址,例如char str[20]; gets(str);
。 - strcat函数:其一般形式为
strcat(字符数组1, 字符数组2)
,用于连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,例如char str1[30] = "People's Republic of "; char str2[3] = "China"; strcat(str1, str2); printf("%s", str1);
。 - strcpy和strncpy函数:
strcpy(字符数组1, 字符串2)
用于将字符串2复制到字符数组1中,strncpy(字符数组1, 字符串2, n)
将字符串2中前面n
个字符复制到字符数组1中,例如char str1[10], str2[] = "China"; strcpy(str1, str2);
或strncpy(str1, str2, 2);
。 - strcmp函数:其一般形式为
strcmp(字符串1, 字符串2)
,用于比较字符串1和字符串2,根据比较结果返回一个整数,例如strcmp("China", "Korea");
。 - strlen函数:其一般形式为
strlen(字符数组)
,用于测试字符串长度,不包括'\0'
在内,例如char str[] = "China"; printf("%d", strlen(str));
。 - strlwr函数:其一般形式为
strlwr(字符串)
,用于将字符串中大写字母换成小写字母,例如char str[] = "HELLO"; strlwr(str); printf("%s", str);
。 - strupr函数:其一般形式为
strupr(字符串)
,用于将字符串中小写字母换成大写字母,例如char str[] = "hello"; strupr(str); printf("%s", str);
。
- puts函数:其一般形式为
C语言字符数组
最新推荐文章于 2024-11-01 12:24:48 发布