一、前言

在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;
}

输出:

C语言字符串的学习_#include

二、基本函数及使用

函数名

描述

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;
}

输出:

C语言字符串的学习_连接字符串_02