P166 13.编一程序,将两个字符串连接起来,不要用strcat函数
定义一个my_strcat(str1,str2)函数
要求:
str1:空间足够大,内容是可变的,不能是常量字符串,必须含有'\0'
str2:必须含有'\0'
一:
#include<stdio.h>
int main() {
char* my_strcat(char* dest, char* src);
char s1[20] = { "Hello " };//目标字符串得足够长且是可变的,必须含有'\0'
char s2[] = { "World" };//源字符串必须含有'\0'
my_strcat(s1, s2);
printf("%s", s1);
return 0;
}
char* my_strcat(char* dest, char* src) {
char* ret = dest;
//找到s1中的'\0'
while (*dest != '\0') {
dest++;
}
//追加源字符串,包含'\0'
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
return ret;
}
运行结果:
二:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
void my_strcat(char* s1, char* s2);
char str1[50], str2[50];
gets(str1);
gets(str2);
my_strcat(str1, str2);
puts(str1);
return 0;
}
void my_strcat(char* s1, char* s2) {
while (*s1 != '\0') {
s1++;
}
while (*s1++ = *s2++);
}
运行结果: