字符串相关函数

本文详细介绍了C/C++中的字符串相关函数,如strcpy、strcat、strlen、strcmp、strchr和strstr,以及应用实例和注意事项。了解这些函数有助于提升字符串处理能力,避免常见错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串相关函数

常用字符串函数

序号函数&目的
1strcpy(s1, s2);复制字符串s2到字符串s1。
2strcat(s1,s2);连接字符串s2到字符串s1的末尾。
3strlen(s1);返回字符串s1的长度。
4strcmp(s1,s2);如果s1和52是相同的,则返回0﹔如果s1<s2则返回小于0;如果s1>s2则返回大于0。
5strchr(s1,ch);返回一个指针,指向字符串s1中字符ch的第一次出现的位置。
6strstr(s1,s2);返回一个指针,指向字符串s1中字符串s2的第一次出现的位置。

字符串函数应用案例

#include<stdio.h>
#include<string.h>

void main(){
	char str1[12]="Hello";
	char str2[12]="World";
	char str3[12];
	char ch="W";
	int len;
	//复制 str1 到 str3
	strcpy(str3,str1);
	printf("str3=%s\n",str3);//Hello 
	
	//连接 str2 到 str1的后面 
	strcat(str1,str2);
	printf("str1=%s\n",str1);//Hello World
	
	//返回 str1 的长度
	len=strlen(str1);
	printf("len(str1)=%d\n",len);//
	
	//如果 str1 和 str2 是相同的,则返回0﹔如果 s1<s2 则返回小于0;如果 s1>s2 则返回大于0。
	printf("%d\n",strcmp(str1,str2)); 
	
	//返回一个指针,指向字符串s1中字符串s2的第一次出现的位置。
	printf("%p\n",strchr(str2,ch));
} 

在这里插入图片描述

字符串(字符数组)使用注意事项和细节
(1)程序中往往依靠检测 ‘\0’ 的位置来判定字符串是否结束,而不是根据数组的长度来决定字符串长度。因此,字符串长度不会统计 ‘\0’,字符数组长度会统计。
(2)在定义字符数组时应估计实际字符串长度,保证数组长度始终大于字符串实际长度,否则,在输出字符数组时可能出现未知字符。
(3)系统对字符串常量也自动加一个 ‘\0’ 作为结束符。例如"C Program”共有9个字符(空格也算),但在内存中占10个字节最后一个字节 ‘\n’ 是系统自动加上的。
(4)定义字符数组时,如果给的字符个数比数组的长度小,则系统会默认将剩余的元素空间,全部设置为’\0’,比如char str[6] = “ab”, str内存布局就是[a][b][\0][\0][\0][\0]

案例

#include<stdio.h> 

void main(){
	char str1[]={"I am happy"};//默认后面加 '\0' 
	char str2[]="I am happy";//省略 {},默认后面加 '\0'
	char str3[]={'I','a','m','h','a','p','p','y'};//字符数组后面不会自动加 '\0',可能乱码 
	char str4[5]={'C','h','i','n','a'};//字符数组后面不会自动加 '\0',可能乱码
	printf("\n str1=%s",str1);//ok
	printf("\n str2=%s",str2);//ok 
	printf("\n str3=%s",str3);//乱码 
	printf("\n str4=%s",str4);//可能会乱码 
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值