char类型的字符串相加一般用到两个函数:strcpy()函数和strcat()函数
原型:
char *strcpy(char *dest,const char *src);
extern char *strcat(char *dest,const char *src);
strcpy()函数的意思是把字符串src的内容复制到字符串dest中,并返回一个char类型的字符串,默认含结束符‘\0’。需要注意的是dest剩余空间必须大于等于src字符串长度+1,最后的1就是为了存储结束符。
strcat()函数和strcpy()函数非常类似,但稍有不同,在这里面是字符串src的内容复制到字符串dest结尾,并返回一个含结束符的char*类型的字符串,同样要满足dest剩余空间大于等于src字符串长度+1。
区别在于:
strcpy()函数是把字符串复制到指定地址,如果原有dest字符串中有其他内容,会被覆盖掉,相当于先把dest清空再复制src的内容。而strcat()函数是把字符串复制到dest的后面,相当于字符串相加。
看下面的例子:
在这里面_a输出内容为add,覆盖了原有的test。
这里面出现一个问题就是如果将d的长度正好设置成a,b,c相加的长度,也就是不考虑最后的结束符,并没有出现溢出现象,运行结果仍然正确,不知道是不是因为C和C++的标准不一样,或者也有可能是VS的版本问题?我用的是VS2010。关于这个问题希望能够得到大家的解答。