C语言用指针查找字符串str1和str2中的第一组相同的字符,删除str1之前与str2之后的

编写函数void mcpy(char str1,char *str2),其功能是查找字符串str1和str2中的第一组相同的字符,找到后,保留str1字符串中位于该字符之前部分(不包含该字符),和str2字符串中位于该字符之后的部分(不包含该字符),合并在一起存储在str1中并输出,如果str1和str2中没有相同的字符,则输出“无相同字符”。(要求:在主函数中输入字符串str1和str2,并输出原始字符串和修改后字符串
*
例如:str1=”hello”,str2=”world”,则输出”hellrld”)**

2个回答

感觉题目限定太宽了,有多种答案的,这里针对你的例子提供一种可行的解法

 #include "stdio.h"
#include "string.h"


void mcpy(char *str1,char *str2) {

    for (int i=0; i<strlen(str2); i++) {
        for (int j=0; j<strlen(str1); j++) {
            if (str1[j]==str2[i]) {
                i++;
                for (; i<strlen(str2); i++,j++) {
                    str1[j]=str2[i];
                }
                str1[j++]='\0';
                for (; j<strlen(str1); j++) {
                    str1[j]='\0';
                }
                printf("%s\n",str1);
                return;
            }
        }
    }

    printf("无相同字符\n");
}

int main()
{
    char * str1 = new char[105];
    char * str2 = new char[105];

    while (scanf("%s%s",str1,str2) != EOF) {
        printf("%s %s\n",str1,str2);
        mcpy(str1,str2);
    }

    return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问