一.strcat函数
//字符串连接函数
char* strcat(char* destination,const char* source);
char* dest 目标字符串 const char* src 源字符串
库中实现的strcat函数
int main ()
{
char str[80];
strcpy (str,"these ");
strcat (str,"strings ");
strcat (str,"are ");
strcat (str,"concatenated.");
puts (str);
return 0;
}
模拟实现strcat函数
char* My_strcat(char* dest, const char* src)
{
assert(dest);
assert(src);
char* p = dest;
while (*dest != '\0')
{
++dest;
}
//此时出了循环,dest已经遍历到最后
while (*dest = *src)
{
++dest;
++src;
}
return p;
}
int main()
{
char str1[] = "we ";
char str2[] = "are ";
char str3[] = "happy!";
printf("%s\n", My_strcat(str1, str2));
printf("%s\n", My_strcat(str1, str3));
system("pause");
return 0;
}
二.strncat函数
char* strncat(char* destination,const char* source,size_t num)
char* dest 目标字符串 char* src 源字符串 size_t num 要连接的字符个数
库中实现的strncat 函数
int main ()
{
char str1[20];
char str2[20];
strcpy (str1,"To be ");
strcpy (str2,"or not to be");
strncat (str1, str2, 6);
puts (str1);
return 0;
}
模拟实现strncat 函数
char* My_strncat(char* dest, const char* src, size_t len)
{
assert(dest);
assert(src);
char* p = dest;
while (len--)
{
if (*dest != '\0')
{
++dest;
}
if (*dest = *src)
{
++dest;
++src;
}
}
return p;
}
int main()
{
char str1[] = "we ";
char str2[] = "are ";
char str3[] = "happy!";
printf("%s\n", My_strncat(str1, str2, strlen(str2)));
printf("%s\n", My_strncat(str1, str3, strlen(str3)));
system("pause");
return 0;
}