C语言中的字符串与其他语言不同,在C中,字符串实际是使用空字符 \0 结尾的一维字符数组。因此 \0 是用于标记字符串的结束。
空字符又称为结束符,缩写为 NUl , 是一个数值为 0 的控制字符, \0 是转义字符,意思是告诉编译器,这不是字符0 而是空字符。
声明和初始化创建一个 RUNOOB 字符串,由于字符的末尾多一个空字符 \0 。所以字符数组大小比单词 RUNOOB 的字符多一个。 char site[7] = {'R','U','N','O','O','B','\0',}; 。也可以写成
char site[] = "RUNOOB";
在内存中表示情况如下:
关于字符串的方法有很多,下面先简单学习一些,其余在标准库中可以找到更多相关函数。
- strcpy(s1,s2);
- 复制字符串s2到字符串s1
- strcat(s1,s2);
- 连接字符串s2到字符串s1的末尾
- strlen(s1);
- 返回字符串s1的长度
- strcmp(s1,s2);
- 如果s1和s2相同,返回0;如果s1<s2,返回小于0;如果s1>s2,返回大于0
- strchr(s1,ch);
- 返回一个指针,指向字符串s1中字符 ch 的第一次出现的位置
- strstr(s1,s2);
- 返回一个指针,指向字符串s1中字符串s2的第一次出现位置
下面写一个方法进行简单的测试:
int charMethod_demo()
{
char str1[14] = "runoob";
char str2[14] = "google";
char str3[14] ;
// 复制 st1 到 st3 ;
strcpy(str3, str1);
printf("strscp(str3,str1):%s\n", str3);
// 连接 st1 到 st2 ;
strcat(str1, str2);
printf("strcat(str1,str2):%s\n", str1);
// 连接后总长度
int len = strlen(str1);
printf("strlen(str1):%d\n", len);
}
其余方法在学习标准库时再补充。