这个其实就是让你自己写一个strcat的实现代码。
char *my_strcat(char *dest, const char *src)
{
size_t i,j;
for (i = 0; dest[i] != '\0'; i++)
;
for (j = 0; src[j] != '\0'; j++)
dest[i+j] = src[j];
dest[i+j] = '\0';
return dest;
}
测试代码:
#include
#include
char *my_strcat(char *dest, const char *src);
int main(int argc, char *argv[])
{
char str1[40] = "1st string\0";
char str2[20] = " 2nd string\0";
my_strcat(str1, str2);
printf("strcat result: %s\n", str1);
return 0;
}
输出:
strcat result: 1st string 2nd string
这个实现很简单,
dest就是合并之后的结果所在, src则是要添加的字符串;
① 找到dest的\0结尾之处。
② 然后从①的结果开始, 按src的长度, 一个个“拷贝”到dest的末尾;
③ 给添加之后的dest末尾写\0结束标记。
④ 返回dest
这个实现的接口和C标准库里面的一样,当然缺点也一样, 就是对dest和src都没有作边界校验。
如果可以用其它的字符串函数, 那么:
char* my_strcat(char*dest,constchar*src)
{
strcpy(dest +strlen(dest), src);
return dest;
}
更简单一些。 自己看看是否能理解?
可以使用_snprintf() 方法
char *pszBuffer = "aa";
char *pszTemp = "bb";
char szBuffer[1024] = { 0 };
_snprintf(szBuffer, sizeof(szBuffer), "%s%s", pszBuffer, pszTemp);
这是两个字符串的值就连接起来了,结果在szBuffer 里面