strcat函数
一、strcat函数的简介
strcat函数在库函数中的定义
char * strcat ( char * destination, const char * source );
(1)返回类型----char*
–被追加后的目标字符串
(2)参数1:char *destination
目标字符串
参数2:const char *source
源字符串,不能和目标字符串相同,如需相同追加用strncat函数
二、strcat函数的功能
连接字符串。将源字符串的副本追加到目标字符串。目标中的终止空字符被源的第一个字符覆盖,并且在目标中由两者串联形成的新字符串的末尾包含一个空字符。
#include<stdio.h> #include<string.h> int main() { char arr[20] = { "hello" }; char err[] = { "world" }; strcat(arr, err); printf("%s", arr); return 0; }
运行结果可以看到,world字符被追加到了hello后。
三、strcat函数注意事项
1.源字符串必须有’\0’
2.目标空间必须足够大,能容纳下源字符串的内容。
3.目标空间必须可修改。
四、strcat函数的模拟
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<assert.h> char* my_strcat(char* dest, const char* src) { assert(dest ); assert(src ); char* start = dest; //先找到dest的最后位置,也就是'\0'处地址 while (*dest != '\0') { dest++; } while (*src++ = *dest++) { ; } return start; } int main() { char arr[20] = { "hello"}; char err[] = { "world" }; printf("%s", my_strcat(arr, err)); return 0; }
注意;dest != NULL,空也就是0,所以断言assert(dest)也正确。
strncat函数
一、strncat函数简介
char * strncat ( char * destination, const char * source, size_t num );
参数:
1.char * destination
:指向目标数组的指针,该数组应包含一个 C 字符串,并且足够大以包含串联的结果字符串,包括其他 null 字符。
2.char * source
:要追加的 C 字符串。
3.size_t num
:要追加的最大字符数。(size_t是无符号整数类型。)
二、strncat函数的功能
从字符串追加字符
1.将源的第一个数字字符追加到目标,外加一个终止空字符
。
如果源中 C 字符串的长度小于 num,则仅复制终止空字符之前的内容。
三、strncat函数的使用
#include <stdio.h> #include <string.h> 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函数的模拟
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <assert.h> char* my_strcnat(char* dest, const char* src, size_t num) { assert(dest != NULL); assert(src != NULL); char* start = dest; //先找到dest的最后位置,也就是'\0'处地址 while (*dest != '\0') { dest++; } while ((*dest++ = *src++) && num--); *dest = '\0'; return start; } int main() { char str1[20] = { "abc" }; char str2[] = { "abcdefg" }; printf("%s", my_strcnat(str1, str2, 4)); return 0; }