strncpy,strncat,strncmp的用法(直接秒懂)

对于strncpy,strncat,strncmp三种用法其实都只是在最后多了一个参数。

目录

strncpy

strncat

strncmp





而多出来的参数为size_t无符号整型。这时候我们就非常好理解了。我们在原本的功能添加一个长度限制。

strncpy

我们知道strcnp是拷贝字符串,加上一个n就是拷贝几个字符串我们写一串代码来理解

不加n


int main()
{
	char arr1[20] = "yyds";
	char arr2[] = "6666";
	strcpy(arr1, arr2, 3);
	printf("%s", arr1);
	return 0;
}

strncpy,strncat,strncmp的用法(直接秒懂)_第1张图片


加上n


int main()
{
	char arr1[20] = "yyds";
	char arr2[] = "6666";
	strncpy(arr1, arr2, 3);
	printf("%s", arr1);
	return 0;
}

结果

strncpy,strncat,strncmp的用法(直接秒懂)_第2张图片

这就很好理解了如果我们没有加上n的话arr1中的内容是会直接被arr2中的6666所代替

而加上限制之后就只会代替其中的n个。所以为只会有三个6把arr1的前三个字符代替


strncat

对于这个我们就更好理解了。

我们都知道strcat是追加字符串函数

我们用代码举一个例子

不加n

int main()
{
	char arr1[20] = "yyds";
	char arr2[] = "1234";
	strcat(arr1, arr2);
	printf("%s", arr1);
	return 0;
}

strncpy,strncat,strncmp的用法(直接秒懂)_第3张图片

加上n

int main()
{
	char arr1[20] = "yyds";
	char arr2[] = "1234";
	strncat(arr1, arr2);
	printf("%s", arr1);
	return 0;
}

strncpy,strncat,strncmp的用法(直接秒懂)_第4张图片

只是我们就很好理解了,加上限制之后我们就只能从arr2中最佳固定个数的字符串。


strncmp

我们首先要知道strcmp是将两个字符串全部比较,而加上限制之后我们就知道了,就是将两个字符串的前n个进行比较相同返回0

我们举一个例子来说明

不加n

int main()
{
	char arr1[20] = "12345";
	char arr2[] = "1234";
	int z=strcmp(arr1, arr2);
	printf("%d", z);
	return 0;
}

strncpy,strncat,strncmp的用法(直接秒懂)_第5张图片

注意结果输出1

我们加上n

int main()
{
	char arr1[20] = "12345";
	char arr2[] = "1234";
	int z=strcnmp(arr1, arr2,4);
	printf("%d", z);
	return 0;
}

我们加上n之后

strncpy,strncat,strncmp的用法(直接秒懂)_第6张图片


这时候我们就是只比较的是前四个字符,所以相同返回0

你可能感兴趣的:(c语言,开发语言,改行学it,程序人生)