【C语言】理解函数strncat、strncpy、strncmp使用方法(最最最好懂)

strncat、strncpy、strncmp是长度受限制的字符串函数

strncat——字符串的拼接更安全

与strcat不同的是 

  1.  strncat会将dest字符串最后的’\0’覆盖掉,字符追加完成后,再追加’\0’;
  2.  strncat的循环结束的条件则是所要追加的字符串个数为0;
  3. strncat()用来连接源字符串的前n个字符到目标字符串后,所以要多传一个参数n

strncat (将字符串追加到的位置,要补充的字符串,限制字符串长度n)

char * strncat ( char * destination , const char * source , size_t num )

例如:char* strncat(char* dest, const char* src, int n)中n的作用

1. 防止缓冲区溢出

当目标字符串 dest 的剩余空间有限时,使用 n 可以避免因复制过多字符而导致缓冲区溢出。例如,如果 dest 剩余空间只能容纳 5 个字符,那么可以将 n 设置为 5,这样函数最多只会复制 5 个字符到 dest 中,保证不会超出 dest 的容量。

2. 部分追加

有时候我们并不需要将整个源字符串 src 追加到目标字符串 dest 中,只需要追加其中的一部分。此时可以通过设置 n 的值来控制追加的字符数量。比如,源字符串 src 为 "abcdefg",我们只需要追加前 3 个字符,就可以将 n 设置为 3。

int main()
{
	char arr1[20] = "hello ";
	char arr2[] = "world";
	strncat(arr1, arr2,3);
	return 0;
}

结果为 hello wor


strncpy——字符串的拷贝更安全

strncpy函数用于将一个字符串复制到另一个字符串。

与strcpy不同的是

  1. 拷贝num个字符从源字符串到目标空间
  2. 如果源字符串长度小于num,则拷贝完源字符串之后,在目标后面追加0,直到num个

 strncpy (将字符串拷贝到的位置,要拷贝的字符串,限制字符串长度n)

char * strncpy ( char * destination , const char * source , size_t num )

int main()
{
	char arr1[20] = "xxxxxxxxxx";
	char arr2[] = "abcdef";
	int num = 3;
	strncpy(arr1, arr2, num);
	printf("%s\n", arr1);
	return 0;
}

结果为abcxxxxxxx


 strncmp——字符串的拷贝更安全

头文件:#include < string.h >

stncmp( 第一个字符串,第二个字符串,要比较的个数)

int stncmp( const char * str 1,const char * str 2,size_t  num)

返回值:

str1=str2 返回0

str1>str2 返回大于0的数

str1<str2 返回小于0的数

int main()
{
	char* p1 = "abcdefgh";
	char* p2 = "abcdujskz";
	int ret=strncmp(p1, p2, 5);
	printf("%d\n", ret);
	return 0;
}

结果为-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值