C语言:字符串函数strlen、strcpy、strcat、strcmp的介绍讲解(功能,注意事项,使用案例)

目录

1、strlen---计算字符串长度

2、strcpy---字符串拷贝

3、strcat---字符串追加

4、strcmp---字符串比较


1、strlen---计算字符串长度

size_t strlen( const char *string );

功能:计算字符串的长度并返回

注意事项:

1、字符串以'\0'结束标志,strlen函数返回的是'\0'前的字符个数(不包含'\0');

2、strlen函数的返回值是size_t(unsigned int),是无符号的;

3、参数所指向的字符串必须'\0'结尾。

4、头文件为<string.h>

使用案例:

代码:

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

int main()
{
	char str[] = "abcde";//字符串后隐藏'\0',以\0'结尾

	printf("%d\n", strlen(str));

	return 0;
}

 结果:

70b0b117a74c455f845a99e8cd2cd7dc.png

2、strcpy---字符串拷贝

char *strcpy( char *strDestination, const char *strSource );

功能:将源字符串(strSource)的内容(包括'\0')拷贝到目标字符串(strDestination)并返回目标字符串首字符地址

 注意事项:

1、源字符串(strSource)必须以'\0'结尾

2、会将源字符串(strSource)中的'\0'拷贝到目标字符串(strDestination

3、目标空间必须足够大,确保可以容纳得下源字符串(strSource)的内容

4、目标空间必须修改

5、头文件为<string.h>

使用案例:

代码:

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

int main()
{
	char dest[30] = {0};//目标空间确保可以存放源字符串
	char src[] = "abcdefg";
	char* ret = strcpy(dest, src);
	//验证是否返回目标字符串首字符地址
	printf("%s\n", ret);
	//验证目标字符串是否修改
	printf("%s\n", dest);
	return 0;
}

结果:

a2ec6cc386554bf4a0293cbf2447a1ec.png

3、strcat---字符串追加

char *strcat( char *strDestination, const char *strSource );

 功能:将源字符串(strSource)追加到目标字符串(strDestination)的后面,并返回目标字符串首字符地址

注意事项:

1、源字符串(strSource)必须以'\0'结尾

2、目标空间必须足够大,确保可以容纳得下源字符串(strSource)的内容

3、目标空间必须可修改

4、不可自己追加自己,需要这样做则使用strncat

5、头文件为<string.h>

使用案例:

代码


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

int main()
{
	char dest[30] = "abcd";//目标空间确保可以容纳得下源字符串
	char src[] = "efg";
	char* ret = strcat(dest, src);
	//验证是否返回目标字符串首字符地址
	printf("%s\n", ret);
	//验证目标字符串是否被追加
	printf("%s\n", dest);

	return 0;
}

结果

d6b69d26256d41e9b95a9f3b6c2488e6.png

4、strcmp---字符串比较

int strcmp( const char *string1, const char *string2 );

功能:比较字符串string1与字符串string2是否相等,如果string1大于string2,则返回大于0的值 ,如果string1小于string2,则返回小于0的值 ,string1等于string2,则返回0。比较的方法:从string1和string2的首字符开始比较,比较它们的ASCII值,如果相等就比较下一个字符的ASCII值(包括\0)直到得出结果(两者比较到\0处后还相等,那就证明两字符串相等)

注意事项:

1、比较的两个字符串必需以'\0'结尾

2、了解其比较两字符串大小的方法

3、头文件为<string.h>

使用案例:

代码


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

int main()
{
	char str1[30] = "abcd";
	char str2[] = "abcd";
	char str3[] = "dcba";
	int ret1 = strcmp(str1, str2);
	int ret2 = strcmp(str1, str3);
	//否返回值
	printf("%d\n", ret1);
	if (strcmp(str1, str2) == 0)
	{
		printf("str1 == str2\n");
	}
	else if (strcmp(str1, str2) > 0)
	{
		printf("str1 > str2\n");
	}
	else
	{
		printf("str1 < str2\n");
	}
	//否返回值
	printf("%d\n", ret2);
	if (strcmp(str1, str3) == 0)
	{
		printf("str1 == str2\n");
	}
	else if (strcmp(str1, str3) > 0)
	{
		printf("str1 > str3\n");
	}
	else
	{
		printf("str1 < str3\n");
	}
	return 0;
}

结果

be8a923f47d04db08cfc9f9896ef31bc.png

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值