C语言学习之路--第八站 字符串

180 阅读1分钟

C语言中的字符串与其他语言不同,在C中,字符串实际是使用空字符 \0 结尾的一维字符数组。因此 \0 是用于标记字符串的结束。

空字符又称为结束符,缩写为 NUl , 是一个数值为 0 的控制字符, \0 是转义字符,意思是告诉编译器,这不是字符0 而是空字符。

声明和初始化创建一个 RUNOOB 字符串,由于字符的末尾多一个空字符 \0 。所以字符数组大小比单词 RUNOOB 的字符多一个。 char site[7] = {'R','U','N','O','O','B','\0',}; 。也可以写成
char site[] = "RUNOOB";

在内存中表示情况如下:

image.png

关于字符串的方法有很多,下面先简单学习一些,其余在标准库中可以找到更多相关函数。

  • 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);

}

image.png

其余方法在学习标准库时再补充。