【问题描述】连接两个字符串(不许用strcato函数)
[输入形式】输入两行字符串
[输出形式】连接两个字符串
[样例输入】 abc
defi
【样例输出】abcdef
[样例说明】
【评分标准】
将一个字符串中逐个字符加入到另一个字符串尾部
#include <stdio.h>
int main()
{
char s1[100],s2[50];
int i=0,j=0;
gets(s1);
gets(s2);
while(s1[i++] != '\0');
i--;
while(s2[j] != '\0')
s1[i++] = s2[j++];
s1[i] = '\0';
printf("%s",s1);
}
参考如下:
#include<stdio.h>
char * mystrcat(char *c, char *d)
{
char* start = c;
while(*start)
{
start++;
}
while (*start=*d)
{
start++;
d++;
}
return c;
}
int main()
{
char *p,a[100],b[100];
gets(a);
gets(b);
p=mystrcat(a,b);
printf("%s",p);
return 0;
}
可以使用循环将第二个字符串中的每个字符依次添加到第一个字符串的末尾,直到第二个字符串的结束符'\0'为止。
具体实现代码如下:
char str1[100], str2[50];
int len1, len2, i, j;
// 输入字符串
fgets(str1, 100, stdin);
fgets(str2, 50, stdin);
// 计算字符串长度
len1 = strlen(str1);
len2 = strlen(str2);
// 去除字符串末尾的回车符
if (str1[len1-1] == '\n') {
str1[len1-1] = '\0';
len1--;
}
if (str2[len2-1] == '\n') {
str2[len2-1] = '\0';
len2--;
}
// 将str2中的字符添加到str1的末尾
for (i = len1, j = 0; j < len2; i++, j++) {
str1[i] = str2[j];
}
// 添加字符串结束符
str1[i] = '\0';
// 输出结果
puts(str1);
以上代码中用到了fgets函数来输入字符串,strlen函数来计算字符串长度,以及puts函数来输出结果。