gpt4 book ai didi

比较两个字符串之间的元素

转载 作者:行者123 更新时间:2023-11-30 16:38:04 24 4
gpt4 key购买 nike

你好,假设我有 2 个字符串,“Today is a beautiful day”和“ao”。我想删除第一个字符串中出现的第二个字符串的字符。

这是我的问题:

char c[20];
char p[10];
int i,j;
int l1,l2;

printf("Enter a string \n");
scanf("%s",cd);

printf("Enter another string \n");
scanf("%s",car);

len1 = strlen(cd);
len2 = strlen(car);

for (i=0;i<len1;i++){
for (j=0;j<len2;j++){
if (cd[i]==car[j]){
cd[i]="";
}
}
}

我想要的是第一个字符串像“Tdy is Nice dy”。因此,我清空了元素相同的位置,以便稍后重新定位。

显然“cd[i]==car[j]”不能在C上完成,我得到“从‘const char*’到‘char’的转换无效。

所以我几乎陷入困境。我会感谢任何帮助。

最佳答案

1) 这是一个尽可能匹配您的算法的解决方案。您所需要的只是一个额外的循环并替换无法用 cd[i]=0; 编译的 cd[i]=""; 。编译器给出的错误与表达式 cd[i]=""; 有关 cd[i] 是字符类型,不能分配字符串 "" 具有一个 const char * 类型到 char 变量。 cd[i] 是一个字符 "" 是一个指针。

操作cd[i]=0;给你想要的:我清空了元素相同的位置以便稍后重新定位它。它替换了带 0 的不需要的字符。

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

int main()
{
char cd[] = "Today is a nice day";
char tmp[] = "Today is a nice day";
char car[] = "ao";
int i;
int j;
int k;

int len1 = strlen(cd);
int len2 = strlen(car);

for (i=0;i<len1;i++){
for (j=0;j<len2;j++){
if (cd[i] == car[j]){
cd[i]=0;
}
}
}

k = 0;
for (i=0; i<len1; i++)
{
if(cd[i] == 0)
{
}
else
{
tmp[k] = cd[i];
k++;
}
}
tmp[k] = 0; /* remember to terminate the tmp */


printf("%s\n", tmp);

strcpy(cd,tmp);
printf("%s\n", cd);

return 0;
}

输出:

Tdy is  nice dy                                                                                   
Tdy is nice dy

或者,您可以跳过它,而不是用 0 清除不需要的字符。该解决方案如下:

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

int main()
{
char cd[] = "Today is a nice day";
char car[] = "ao";
int i;
int j;
int k = 0;
int skip = 0;


int len1 = strlen(cd);
int len2 = strlen(car);

for (i=0; i<len1; i++)
{
for (j=0; j<len2; j++)
{
if (cd[i] == car[j])
{
skip++; // make note that this character is not needed
}
}

if(skip == 0)
{
cd[k] = cd[i]; // copy the character
k++; // increase the position index
}
else
{
// skip the copy of charcter; clear the skip marker
skip = 0;
}
}

cd[k] = 0; // remember to terminate the new ck string!
printf("%s\n", cd);

return 0;
}

输出:

Tdy is  nice dy  

关于比较两个字符串之间的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47613928/

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