一、前言
在C语言中字符串实际上是使用空字符\0结尾的一维字符数组。因此,\0是用于标记字符串的结束。空字符又称结束符,缩写NULL,是一个数值为0的控制字符,\0是转义字符,意思是告诉编译器,这不是字符0,而是空字符。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char name[] = "hello";
// 获取长度
int size = sizeof(name) / sizeof(name[0]);
printf("size=%d\n",size);
char data[] = "hello\0";
printf("data=%s\n", data);
return 0;
}
输出:
二、基本函数及使用
函数名 | 描述 |
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第一次出现的位置 |
我们使用这些函数,需要使用#include <string.h>预处理器指令。
#include <stdio.h>
#include <string.h>
int main()
{
char s1[20] = "hello";
char s2[20] = "world";
char s3[20];
//复制s2到s3
strcpy(s3, s2);
printf("strcpy(s3,s2)=%s\n", s3);
//连接字符串s2到s1的末尾
strcat(s1, s2);
printf("strcat(s1,s2)=%s\n", s1);
//获取s1的长度
int s1Length=strlen(s1);
printf("s1的长度为:%d\n", s1Length);
//比较s1和s2的值
int compare = strcmp(s1, s2);
printf("strcmp(s1,s2)=%d\n", compare);
// 返回字符串s1中字符e第一次出现的位置
char *str = strchr(s1, 'e');
printf("字符串中第一次出现字符e的位置:%s\n", str);
// 返回字符串s1中字符串s2第一次出现的位置
char *str1 = strstr(s1, s2);
printf("字符串中第一次出现字符串s2的位置:%s\n", str1);
return 0;
}
输出: