前言:
本博客共介绍了三种长度受限制的字符串函数:strncpy、strcmp、strncat
strncpy函数的介绍及其应用:
strncpy函数的设计:
char * strncpy (char * destination, const char * source ,size_t num);
- num是限制要拷贝的字符个数;
- strncpy的头文件是:#include <string.h>
- 提示:每段代码的注释都具有详细解释功能
strncpy的应用:
#include <stdio.h>
#include <string.h>
int main()
{
char arr[20] = "abcdef";
char arr1[] = "xxxx";
strncpy(arr, arr1, 2);//只拷贝了2个
//如果拷贝的个数超过了arr1的元素总数,就会用'\0'来补充
//而'\0'根本就不会被打印出来(详见调试的监视窗口)
//所以在终端看来就是把arr1的全部拷贝过来了而已
printf("%s\n", arr);
return 0;
}
结果:
注释见下图:
strncmp函数的介绍及其应用:
strncmp函数的设计:
strncmp:int strncmp ( const char * str1 , const char * str2 , size_t num );
- num是限制要比较的字符个数;
- strncmp的头文件是:#include <string.h>
- 提示:每段代码的注释都具有详细解释功能
strncmp的应用:
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[] = "abde";
char arr2[] = "abdefjs";
int ret = strncmp(arr1, arr2, 6);
printf("%d\n", ret);
return 0;
}
结果:和strcmp就一个字符个数的限制的差别
strncat函数的介绍及其应用:
strncat函数的设计:
strncat:char * strncat (char * destination , const char * source , size_t num);
- num是限制要拷贝的字符个数;
- strncat的头文件是:#include <string.h>
- 追加以后会加上'\0'
- 可以自己追加自己
- 提示:每段代码的注释都具有详细解释功能
strncat的应用:
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[20] = "abcdef\0qqqqq";
//通过在arr1中间段放'\0'来确定在将x y追加在后面的同时也会将'\0'追加过来
//起初:char arr1[20]="abcdef";
//将x y追加过来以后,经过调试发现arr1里是abcdefxy\0
//为确定\0是arr1的还是arr2的
//便将arr1改为最上面的样式
//调试后可在监视窗口发现
//arr1变成了abcedfxy\0qqqq
//由此可见
//是追加过去的
//只能在调试的监视窗口看
//因为遇到'\0'完全不打印了
//两次结果完全没有差别
char arr2[] = "xyz";
strncat(arr1, arr2, 2);
printf("%s\n", arr1);
return 0;
}
结果:
注释见下图:
追加以后会加上'\0':