1.strcat()、strncat()函数
原型
char *strcat(char *dest, const char *src);
char *strncat(char *dest, const char *src, size_t n);
1.strcat函数为将原字符串(src)全部拼接到目标字符串上(目标字符串与原字符串均需有空间)
2.strncat函数为将原字符串(src)从头开始的n个字符拼接到目标字符串(dest)后面(目标字符串与原字符串均需有空间), 如果n >= strlen(src),则此时相当于直接调用strcat()函数,即把原字符串全部拼接到目标字符串上
2.示例代码
1.strcat()函数
void Strcat(char *dest, const char *src) {
int len_dest = Strlen(dest);
int i = 0;
int j = len_dest;
while('\0' != src[i]) {
dest[j] = src[i];
i ++;
j ++;
}
dest[j] = '\0';
}
2. strncat()函数
void Strncat(char *dest, const char *src, size_t n) {
int len_src = Strlen(src);
if(n >= len_src) {
Strcat(dest, src);
return ;
}
int i = 0;
int j = Strlen(dest);
while(('\0' != src[i]) && (i < n)) {
dest[j] = src[i];
j ++;
i ++;
}
dest[j] = '\0';
}
3.自行编写的strlen()函数
int Strlen(const char *str) {
int i = 0;
while('\0' != str[i]) {
i ++;
}
return i;
}
3. 测试代码
int main(int argc, char *argv[]) {
char dest[32];
char src[32];
printf("请输入原字符串: ");
scanf("%s", src);
printf("请输入目标字符串:");
scanf("%s", dest);
//strcat
Strcat(dest, src);
printf("after strcat:\n");
printf("src = %s, dest = %s\n", src, dest);
//strncat
size_t n;
printf("请输入拼接的位数:");
scanf("%lu", &n);
Strncat(dest, src, n);
printf("after strncat:\n");
printf("src = %s, dest = %s\n", src, dest);
return 0;
}
3. 运行结果图
已在ubuntu16.04下 vim编辑器 gcc编译通过