gpt4 book ai didi

c - 如何消除所有也出现在ch2中的字母ch1(c语言)

转载 作者:行者123 更新时间:2023-11-30 19:34:48 27 4
gpt4 key购买 nike

编写一个程序,读取键盘上的两串字符CH1和CH2,并消除CH1中也出现在CH2中的所有字母。注意:不使用指针和strcpy。

您能告诉我为什么字符没有正确移动吗?

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

int main()
{
char ch1[30], ch2[30], ch3[30];
int i, j, L1, L2, X;

printf("please enter ch1: ");
scanf("%s",ch1);
printf("please enter ch2 : ");
scanf("%s",ch2);

L1=strlen(ch1);
L2=strlen(ch2);

for(i=0;i<L1;i++)
X=0;
for(j=0;j<L2;j++){
if(ch1[i]==ch2[j]){
X=1;
ch1[i]=ch1[i+1];
}
}
printf("result : %s" , ch1);
}

最佳答案

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

int main()
{
char ch1[30], ch2[30], ch3[30];
int i, j, L1, L2, X, k;

printf("veuillez saisir ch1: \n");
scanf("%s",ch1);
printf("veuillez saisir ch2 : \n");
scanf("%s",ch2);

L1=strlen(ch1);
L2=strlen(ch2);

for(i=0;i<L1;i++)
for(j=0;j<L2;j++){
if(ch1[i]==ch2[j]){
for(k = i; k < L1 - 1; k++) {
ch1[k]=ch1[k+1];
}
i--;
L1--;
ch1[L1] = '\0';
for(k = j; k < L2 - 1; k++) {
ch2[k]=ch2[k+1];
}
L2--;
ch2[L2] = '\0';
break;
}
}
printf("Chaîne résultat : %s\n" , ch1);

return 0;
}

我基本上所做的就是每次在 ch1 中找到一个位于 ch2 中的字符时,将字符串向下移动。然后我以 null 终止字符串,以便正确打印并将大小减小 1。

关于c - 如何消除所有也出现在ch2中的字母ch1(c语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43358989/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com