有位学弟问到我如何将两个字符连接起来,想想java/python里面可以直接用+连接起来,可是C/C++里面有没有这么方便的做法呢?
答案是有的,在C语言的string.h库中有个神奇的函数叫做strcat,它可以做到这一点。下面开始我们的讲解~~~
此时我们可能会想知道它的原型构成:
extern char *strcat(char *dest, const char *src);
我们可以看到,函数的原型是传入了两个char类型的指针,中文定义如下:
char * strcat (目标字符串,源字符串);//将源字符串的副本附加到目标字符串上,目标字符串中的终止空字符由源字符串的第一个字符覆盖,并将这两个字符串连接形成的新字符串,末尾包含一个空字符。
在C中,函数原型存在 <string.h>头文件中
参数定义
- dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。
- src -- 指向要追加的字符串,该字符串不会覆盖目标字符串。
该函数将返回一个指向最终的目标字符串 dest 的指针
举个例子:
#include <stdio.h> #include <string.h> int main() { char d[20] = "GoldenGlobal"; char* s = "View"; strcat(d,s); printf("%s",d); getchar(); return 0; }
打印结果如下:
再举个通俗易懂的例子:
#include <stdio.h> #include <string.h> int main () { char str[80]; strcpy (str,"these "); strcat (str,"strings "); strcat (str,"are "); strcat (str,"concatenated."); puts (str); return 0; }
打印结果如下:
these strings are concatenated.