字符串连接函数
在程序开发中,经常需要将两个字符串进行连接操作,例如,将电话号码和相应的区号进行连接。为此,C语言提供了strcat()函数和strncat()函数来实现连接字符串的操作,关于这两个函数的相关讲解,具体如下。
1、strcat()函数
strcat()函数的用法很简单,它用于实现字符串的连接。strcat()函数的声明如下所示:
char *strcat(char *dest, const char *src);
在上述函数声明中,strcat()函数有两个参数:dest和src,strcat()函数将参数src指向的字符串复制到参数dest所指字符串的尾部,覆盖dest所指字符串的结束字符,实现拼接。
需要注意的是,当调strcat()函数时,第1个参数必须有足够空间存储连接进来的字符串,否则会产生缓冲区溢出问题。
strcat()函数的用法示例如下所示:
char str1[20] = "abcdef";
char str2[10] = "abcwdfg";
char *p = "HELLO";
strcat(str1,p); //将字符串p连接到str1后面
strcat(str2,p); //将字符串p连接到str2后面
上述代码首先定义了两个数组str1和str2,大小分别为20和10,然后调用strcat()函数将字符串“HELLO”分别拼接到str1与str2后面。代码执行后,“HELLO”被拼接到str1之后,str1字符串由“abcdef”更改为“abcdefHELLO”;但在将“HELLO”拼接到str2之后时,会因str2空间不足而报错,拼接失败。
2、strncat()函数
为了避免出现缓冲区溢出问题,C语言提供了可限制拼接长度的函数strncat()。strncat()函数的声明如下:
char *strncat(char *dest, const char *src, size_t n);
在上述函数声明中,除了接收两个字符指针src和dest之外,还接收第3个参数n,该函数用于设置从src所指字符数组中取出的字符个数。strncat()的用法示例如下:
char str1[20] = "abcdef";
char str2[10] = "abcwdfg";
strncat(str1, str2, 3);
上述代码先定义了两个字符数组str1、str2,之后调用了strncat()函数,取str2字符串的前3个字符abc连接到str1中,拼接完成后str1由“abcdef”更改为“abcdefabc”。strncat()函数与strcat()函数使用方式相同,都要保证第一个参数有足够的空间e容纳连接进来的字符串。