本文主要是介绍strcat与strncat函数使用与模拟实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、strcat函数的使用与模拟实现
- 源字符串必须以 '\0' 结束。
- 目标字符串中也得有 \0 ,否则没办法知道追加从哪里开始。
- 目标空间必须有足够的大,能容纳下源字符串的内容。
- 目标空间必须可修改。
- 字符串自己给自己追加,不一定能实现。
strcat函数的使用:
#include<stdio.h>
#include<string.h>
int main()
{char str1[] = "hello world";char str2[20]= "xxxxxxxx";strcat(str2, str1);printf("%s", str2);return 0;
}
模拟实现strcat函数:
char *my_strcat(char *dest, const char*src)
{ char *ret = dest; assert(dest != NULL); assert(src != NULL); while(*dest) { dest++; }while((*dest++ = *src++)) { ;} return ret;
}
二、strncat函数的使用与模拟实现
- 将source指向字符串的前num个字符追加到destination指向的字符串末尾,再追加一个 \0 字 符。
- 如果source 指向的字符串的长度小于num的时候,只会将字符串中到 \0 的内容追加到destination指向的字符串末尾。
strncat函数的使用:
#include<stdio.h>
#include<string.h>
int main()
{char str1[] = "hello world";char str2[20]= "xxxxxxxx";strncat(str2, str1,4);printf("%s", str2);return 0;
}
strncat函数的模拟使用:
char *my_strncat(char *dest, const char *src, size_t n)
{ // 找到目标字符串的末尾 char *dest_ned = dest; while (*dest_end != '\0'){++dest_end;} // 将源字符串的前n个字符追加到目标字符串的末尾 for (i = 0; i < n && src[i] != '\0'; ++i){*dest_end++ = src[i];} // 添加字符串结束符*dest_end = '\0';return dest;
}
这篇关于strcat与strncat函数使用与模拟实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!