0
点赞
收藏
分享

微信扫一扫

c语言中常用处理字符串函数总结

你的益达233 2022-02-13 阅读 90

1、char *strcat(char *s1, const char *s2)

拼接字符串作用,把s2拼接到s1字符串后面,返回值是指向s1的指针

int main()
{
	char s1[] = "aba";
	char s2[] = "cdf";
	printf("拼接前s1长度:%d   s2长度: %d\n", strlen(s1), strlen(s2));
	char *s3=strcat(s1, s2);
	//s3等同于s1
	printf("打印s1: %s\n", s1);
	printf("打印s3: %s\n", s3);
	printf("拼接后s1长度:%d   s2长度: %d   s3长度:%d\n", strlen(s1), strlen(s2),strlen(s3));
}

注意:s2拼接到s1后面,s1的长度会由最初的3变为6(没有算结束符),在这里程序并没有报错这是因为C语言对于数组下标越界并不会作检测处理,所以在使用strcat()函数的时候尽量给予足够大的内存空间,除了要计算拼接后的字符数另外需再加1才够空间存放末尾的空字符。所以在开始定义s1长度的时候最好考虑好拼接后的长度,这里最初的长度设为:s1的长度+s2的长度+结束符=3+3+1=7,尽管程序在缓冲区溢出后可能不会报错,但为了程序的安全性还是严谨一点好。

2、char *strstr(const char *s1, const char *s2)

查找s2第一次出现在s1的位置,返回s2第一次在s1出现的首地址,如果不存在返回NULL

int main()
{
	//s2在s1中能找到
	char s1[] = "acdrtcdrj";
	char s2[] = "cdr";
	char *s3 = strstr(s1, s2);
	printf("%s\n", s3);

	//str2在str1中不能找到
	char str1[] = "acdrtcdrj";
	char str2[] = "cdrx";
	char *str3 = strstr(str1, str2);
	printf("%s\n", str3);
}

 

 

 

举报

相关推荐

0 条评论