目录:
一:定义
字符串实际上是使用 null 字符 '\0' 终止的一维字符数组
一个以 null 结尾的字符串,包含了组成字符串的字符
字符串的本质是以 \0 结束的字符数组
字符串格式(%s)输出
printf("%s",hi);
下面的声明和初始化创建了一个 "Hello" 字符串
由于在数组的末尾存储了空字符,所以字符数组的大小比单词 "Hello" 的字符数多一个
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
二:操作字符串的函数
序号 | 函数 & 目的 |
---|---|
1 | strcpy(s1, s2); 【strcpy: string copy】
|
2 | strcat(s1, s2); 【strcat: string catenate 】
|
3 | strlen(s1); 【strlen: string length 】
|
4 | strcmp(s1, s2); 【strcmp: string compare 】
|
5 | strchr(s1, ch);
|
6 | strstr(s1, s2);
|
实例:
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[12] = "Hello";
char str2[12] = "World";
char str3[12];
int len ;
/* 复制 str1 到 str3 */
strcpy(str3, str1);
printf("strcpy( str3, str1) : %s\n", str3 );
/* 连接 str1 和 str2 */
strcat( str1, str2);
printf("strcat( str1, str2): %s\n", str1 );
/* 连接后,str1 的总长度 */
len = strlen(str1);
printf("strlen(str1) : %d\n", len );
return 0;
}
运行结果:
strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10
三:strlen 与 sizeof的区别
1. strlen
是函数
二者得到的结果类型为 size_t,即 unsigned int 类型
计算的是字符串的长度
以 \0 作为长度判定依据
2.sizeof
是运算操作符
二者得到的结果类型为 size_t,即 unsigned int 类型
计算的是变量的大小
不受字符 \0 影响
3.补充 size_
size_t 是一种数据类型
近似于无符号整型,但容量范围一般大于 int 和 unsigned
可以使用 size_t 是为了保证 arraysize 变量能够有足够大的容量来储存可能大的数组
四:''和" "的区别
1.''
里面只能放一个字符
'a' 表示是一个字符
2." "
里面表示是字符串系统自动会在串末尾补一个 0
"a" 表示一个字符串相当于 'a'+'\0'