如何从与另一个字符串中的任何字符匹配的字符串中删除每个字符

拉比布·阿米尔·萨利米

这是我想出的代码,但有时它不起作用。

例如,如果 string1 = 通往地狱的高速公路,而 string2 = 通往天堂的阶梯,则输出为 'ghll',尽管 'h' 位于第二个字符串和第一个字符串中。我无法弄清楚为什么 h 没有像两个字符串中的其他字符一样被删除。

#include <stdio.h>
#include <string.h>
main()
{
    char string1[30], string2[30];
    int length1, length2;

    printf("Enter string 1: ");
    gets(string1);

    printf("Enter string 2: ");
    gets(string2);

    length1 = strlen(string1);
    length2 = strlen(string2);

    for (int i = 0; i <= length1; i++)
    {
        for (int j = 0; j <= length2; j++)
        {
            if (string1[j] == string2[i])
            {
                for (int k = j; k <= length1; k++)
                {
                    string1[k] = string1[k + 1];
                }
            }
        }
    }

    printf("Deleted characters of string 2 from string 1: %s", string1);
}
斯帕科特
  1. 使用查找表有效地应用字符过滤器。
#include <stdio.h>
#include <string.h>

int main() {
    char s1[] = "highway to hell";
    char s2[] = "stairway to heaven";

    printf ("S1: %s\nS2: %s\n", s1, s2);

    char alt[256] = {0};
    //build a lookup table for efficient filtering
    for (int ci = 0; s2[ci]; )
        alt[(unsigned char)s2[ci++]] = 1;

    int slen = 0;
    for (int ci = 0; s1[ci]; ++ci) {
        if (alt[(unsigned char)s1[ci]]) continue;
        s1[slen++] = s1[ci];
    }
    s1[slen] = '\0';
    printf ("S1 after S2 filter : %s\n", s1);

    return 0;
}
  1. gets()已弃用,请fgets()改用。

  2. fgets():如果读取了换行符(\n),则将其存储到缓冲区中。使用前修剪缓冲区:从 fgets() 输入中删除尾随换行符

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从另一个字符串中删除任何出现的字符串?

计算一个字符串在另一个字符串中每个字符的出现次数

删除字符串中与另一个字符串中的任何字符匹配的字符

如何从另一个字符串中删除一个字符串?

检查一个字符串是否在另一个字符串中的任何字符的最佳方法javascript

PHP-检查一个字符串是否包含另一个字符串中的任何字符

如何用 MySQL 中另一个字符串和一个字段的串联替换任何字符串

用字符串中的另一个字符替换“字符”

如何比较两个字符串数组并将匹配值存储在另一个字符串数组中?

从Java中的另一个字符串中删除字符串

字符串中的每个字符以任意顺序存在于另一个字符串中

如何正确找到另一个字符串中的匹配字符

匹配另一个字符串中的子字符串

我无法计算另一个字符串中的匹配字符串

如果第一个字符与列表中的另一个字符串元素匹配,则删除字符串列表中的字符串元素

删除另一个字符串中带有{{xxx}}的字符串

使用另一个字符串从字符串中删除空格

如何在R中的另一个字符串向量中grep一个字符串向量

如何在Lua中的另一个字符串中插入一个字符串?

如何向列表中的每个字符串添加一个字符串?

从熊猫数据框中的列中找到一个字符串,该字符串与另一个字符串列表中的任何项目匹配

将两个字符串中的每个字符串的所有第一个类似的字符放入另一个字符串中

如何在Shell中获取另一个字符串中一个字符串的行号

如何将一个字符串数组存储到另一个字符串数组中?

如何测试一个字符串是否在鱼壳中包含另一个字符串?

Ruby:如何计算一个字符串出现在另一个字符串中的次数?

如何从终端用更多文件中的另一个字符串替换一个字符串?

如何从另一个字符串中“减去”一个字符串?

如何在另一个字符串中搜索一个字符串?