首页 > 编程知识 正文

strlcat函数,c语言中strcat函数

时间:2023-05-05 07:09:47 阅读:255487 作者:2457

Strcat函数和Strncat函数详解 Strcat函数原型 char *strcat( char *strDestination, const char *strSource ); strcat函数的注意事项 源字符串必须以结束目标空间必须足够大,能容纳下源字符串的内容目标空间必须可修改 模拟实现strcat #include<stdio.h>#include<assert.h>char* my_strcat(char* dest, const char* source){//字符串的连接首先要找到目标字符串的,然后在去追加,一共分为两步char* ret = dest;assert(dest != NULL);assert(source != NULL);while (*dest != ''){dest++;}while (*dest++ = *source++){;}return ret;}int main(){char arr1[20] = "hello ";my_strcat(arr1, "world");printf("%s", arr1);return 0;} 思考:字符串可以连接字符串本身吗?

答案是不可以的;
因为:字符串自己连接自己是不可行的,自己连接自己的话就会覆盖掉,这样程序就找不到终止的标志,会一直继续,达成死循环,最终程序崩溃

strncat的函数原型 char *strncat( char *strDest, const char *strSource, size_t count ); 库函数下的strncat #include<stdio.h>int main(){char arr1[30] = "hello world";char arr2[] = "change world";strncat(arr1, arr2, 3);printf("%s", arr1);return 0;}//追加的时候要主动放一个过去//如果希望追加的字符个数大于我字符串本身的个数的话,不会再像后面追加0.只会链接我字符串本身的长度,然后放一个,别的什么操作都没有 模拟实现strncat #include<stdio.h>#include<assert.h>char* my_strncat(char* dest, const char* src,int n){char* ret = dest;assert(dest);assert(src);char* p = dest;while(*p != 0){p++;}while(n--){*p++ = *src++;}*p = 0; //主动追加一个就字符串连接了。return ret;}int main(){char arr1[30] = "hello world";char arr2[] = "change world";my_strncat(arr1, arr2, 3);printf("%s", arr1);return 0;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。