编一程序,将两个字符串连接起来,不要用strcat函数

自己在学习敲程序以后,不是很会敲该程序,希望有人可以帮我解答一问,让我核对一下我哪错了。

c语言 参考如下:

#include<stdio.h>

char * mystrcat(char *c, char *d)
{
    char* start = c;
    while(*start)
    {
        start++;
    }
    while (*start=*d)
    {
        start++;
        d++;
    }
    return c;
}
void main()
{
    char *p,a[100],b[100];
    gets(a);
    gets(b);
    p=mystrcat(a,b);
    printf("%s",p);
}
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7722192
  • 这篇博客也不错, 你可以看下编一程序,将两个字符串连接起来,不要用strcat函数.
  • 除此之外, 这篇博客: 【C语言上机练习题目-代码+运行结果】中的 5.4  将两个字符串连接起来,不要使用strcat函数。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 源代码
    # include <stdio.h>
    # include <string.h>
    
    int main()
    {
    	int i,j,len1,len2,b = 1;
    	char str1[100],str2[100],str3[200];
    	printf("\n*******************************************************************************************\n");//标题提示语
    	printf("                     将两个字符串连接起来,不要使用strcat函数                              \n");
    	printf("*******************************************************************************************\n");
    
    
    	while (b==1)                        //进行循环输入分数
    	{
    
    	printf("请输入原字符串(长度小于100):\t");              //提示输入字符串
    	scanf("%s",str1);
    	printf("\n请输入要追加的字符串(长度小于100):\t");  
    	scanf("%s",str2);
    
    	len1 = strlen(str1);               //对输入的字符串进行读取有效位数
    	len2 = strlen(str2);
    	
    
    
    
    		i = 0;
    	while(str1[i]!=0)
    	{
    	str3[i] = str1[i];
    	i++;
    	}
    
    	j = 0;
    	while (str2[j]!=0)
    	{
    	str3[i+j] = str2[j];
    	j++;
    	}
    
    	str3[i+j] = 0;
    
    	printf("\nstr1 = %s\tstr2 = %s\n",str1,str2);
    	printf("\n您输入的第一个数组的有效长度为\tlen1 = %d\n\n您输入的第一个数组的有效长度为\tlen2 = %d\n",len1+1,len2+1);
    	printf("\n追加后的数组三为:\t%s",str3);
    
    
    
    
    
    	
    printf("\n_________________________________________________________________________\n");
    
    printf("\nBRAEK(0) or CONTINUE (1):\t");       //确认是否循环
    		scanf("%d",&b);
    printf("\n_________________________________________________________________________\n");
    	}
    
    
    return 0;
    
    }
    
    
    
    • 运行结果

    在这里插入图片描述


参考

#include <stdio.h>

int main() {
    // 定义两个字符串数组
    char str1[20], str2[20];

    // 读入两个字符串
    printf("请分别输入两个字符串:\n");
    scanf("%s%s", str1, str2);

    // 拼接两个字符串
    int i = 0;   // 用于记录第一个字符串的长度
    while (str1[i] != '\0') {
        i++;
    }
    for (int j = 0; str2[j] != '\0'; j++) {
        str1[i] = str2[j];
        i++;
    }
    str1[i] = '\0';

    // 输出拼接结果
    printf("两个字符串的拼接结果为:%s\n", str1);

    return 0;
}