C 从字符串中删除多个字母

标签 c string pointers while-loop

我输入了两个字符串(string1 和 string2)。我需要做的是从字符串 1 中删除字符串 2 中的所有字母。前任。 string1="abcdefghi", string2="afbdh", output="cegi"。现在它只删除一个字母。

我尝试循环 *str3 但我认为在第一次迭代后,*str2 不会返回到 str3[0]

void rmstr(char *str2, char *str3)
{
    char *p=str2;

    printf("Old String: %s", str2);

    while(*str2)
    {
       if(*p != *str3)
           *str2++=*p;
       p++;
    }
}

最佳答案

这里没有指针。

实际上有很多解决方案可以解决这个问题。

这里是我试过的

        string fStr = "bhardwaj", sStr = "dev";
        char[] tStr = new char[fStr.Length];
        int count = -1, j;

        for (j = 0; j < tStr.Length; j++)
            tStr[j] = ' ';
        for (int i = 0; i < fStr.Length; i++)
        {
            for (j = 0; j < sStr.Length; j++)
                if (fStr[i] == sStr[j]) break;
            if (j == sStr.Length)
                tStr[++count] = fStr[i];
        }

关于C 从字符串中删除多个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26092809/

相关文章:

JavaScript 正则表达式匹配句子中的单词

c - 使用基于指针的条件时,即使循环条件为零,循环条件是否也有效?

C++编程,迭代器是一个指针,即使它没有被声明为指针

c - typedef 一个结构到与该结构同名的点

C程序无法显示输出

c - 凯撒密码和反向文本程序的问题

c++ - 如何在 C++ 中将对象写入文件

具有 char 指针类型的 C 结构无法在函数中插入值

c - 什么是保持最后期限的良好系统测试?

c - cygwin $'\r':找不到命令错误