用C语言函数编写程序

img


各位有谁知道该题的思路吗
用函数的方法作答
在线等候答疑
万分感谢



void mystrcat1(char str1[], char str2[])
{
    int i, j;
    for (i = 0; str1[i]; i++)
        ;
    str1[i++] = ' ';
    for (j = 0; str2[j]; j++)
        str1[i + j] = str2[j];
    str1[i + j] = '\0';
}
void mystrcat2(char *str1, char *str2)
{
    while (*str1 != '\0')
        str1++;
    *str1++ = ' ';
    while (*str2 != '\0')
        *str1++ = *str2++;
    *str1 = '\0';
}

int main()
{
    char str1[100] = "work together";
    char str11[100] = "work together";
    char str2[] = "to fight the virus";
    mystrcat1(str1, str2);
    printf("%s\n", str1);
    mystrcat2(str11, str2);
    printf("%s", str11);
    return 0;
}

先找到字符串1的结束标志'\0',然后从此处开始将字符串2的字符依次复制过来。最后在字符串结尾加上字符串结束标志'\0'

void mystrcat1(char str1[],char str2[])
{
    int i=0,j;
    while(str1[i]!='\0')
        i++;
    for(j=0;str2[j]!='\0';j++)
    {
        str1[i]=str2[j];
        i++;
    }
    str1[i]='\0';
}

第一个函数可以使用数组下标的方法来访问字符数组,然后连接两个字符串;

第二个函数可以使用字符指针来访问字符数组的形式来访问数组,然后连接两个字符串。

一个实现,如下:

参考链接:
c语言整形数组存放字符串,用一维字符数组存放字符串_顶尖PPT的博客-CSDN博客

#include <stdio.h>
#include <string.h>

void mystrcat1(char str1[],char str2[]){
    
    int i=0,j=0;
    while(str1[i]!='\0'){ // 使用数组下标的方式遍历完整个str1字符数组,直到字符数组最后的空字符 
        i++;
    }
    
    
    while(str2[j]!='\0'){ //遍历字符数组str2,把它里面的所有字符复制到字符数组str1 
        str1[i]=str2[j];
        i++;
        j++;
    }
    str1[i]='\0'; //复制完成,在字符数组结尾加上字符串的结尾字符空字符'\0' 
} 

void mystrcat2(char *str1,char *str2){
    
    while(*str1!='\0'){  // 使用字符指针的方式遍历完整个str1字符数组,直到字符数组最后的空字符 
        str1++;
    }
    
    while(*str2!=0){ //遍历字符数组str2,把它里面的所有字符复制到字符数组str1 
        *str1=*str2;
        str1++;
        str2++;
    }
    *str1='\0'; //复制完成,在字符数组结尾加上字符串的结尾字符空字符'\0' 
    
}

int main(void){
    // https://blog.csdn.net/weixin_31885875/article/details/117020399
    char s1[30]={"wordk together"};
    char s2[30]= {" to fight the virus"};
    
    mystrcat1(s1,s2);
    printf("使用mystrcat1()函数后,连接后的字符串为:%s\n",s1);
    
    strcpy(s1,"wordk together");// 把第一个字符串重新复制到字符数组s1 
    
    mystrcat2(s1,s2);
    printf("使用mystrcat2()函数后,连接后的字符串为:%s\n",s1); 
} 

img