零.导言
上次,我讲解了strlen strcpy strcat strcmp函数 ,今天我将继续讲解字符/字符串函数中的
strncpy strncat strncmp函数。
一.strncpy
strncpy函数和strcpy函数类似,都是用来复制(copy)字符串的函数,区别在于它只会复制前num个字符,num由自己决定,使用方式如下图代码所示:
cpp
int main()
{
char str[7] = "asdghj";
char tmp[7] = { 0 };
strncpy(tmp, str, 3);
printf("%s", tmp);
return 0;
}
运行结果:
当 num 大于 tmp 元素个数时:
内存越界了,于是报错。
当 num 大于 str 元素个数时:
会在目标后追加'\0', 直到总元素数等于num。
二.strncat
strncat函数和strcat函数类似,都是用来拼接字符串的函数,区别在于它只会拼接前num个字符,num由自己确认,使用方式如下图代码所示:
cpp
int main()
{
char str[20] = "foufou";
char tmp[20] = "ALICE";
strncat(tmp, str, 3);
printf("%s", tmp);
return 0;
}
运行结果:
可以看到确实只把 str 的前3为字符拼接到了 tmp 上,并且是在 tmp 的 '\0' 处进行拼接,并在最后加上 '\0' 。
当 num 大于 str 元素个数时:
和 strncpy 不同,strncat 确实不会在目标后面****追加'\0',和 num 等于 str 元素个数的情况没有区别。
三.strncmp
strncmp函数和strcmp函数类似,都是用来比较字符串的函数,区别在于它只会比较前num个字符,num由自己确认,使用方式如下图代码所示:
cpp
int main()
{
char str[20] = "foufou";
char tmp[6] = "ALICE";
int ret = strncmp(tmp, str,3);
printf("%d", ret);
return 0;
}
验证:
此处就只比较了前3个字符。
四.相关链接
【C/C++】字符/字符串函数(1)------由string.h提供-CSDN博客
完