c 字符串:如果在句子中找到一个单词,则输入 ' '

大卫

我制作了一个代码,我的目标是在句子中找到输入词的地方放置空格。我需要用空格代替小词

喜欢:

Three witches watched three watches
tch

输出:

Three wi es wa ed three wa es

我做了这个代码:

#include<stdio.h>
#define S 8
#define B 50
void main() {
char small[S] = {"ol"};
char big[B] = {"my older gradmom see my older sister"};
int i = 0, j = 0;


for (i = 0; i < B; i++)
{
    for(j=0;j<S;j++)
    {
        if(small[j]!=big[i])
        {
            j=0;
            break;
        }
        if(small[j]=='\0')
        {
            while (i-(j-1)!=i)
            {
                i = i - j;
                big[i] = '\n';
                i++;
            }
        }
    }
}
puts(big);
}
优男孩

首先,在您的示例中,您使用换行符 '\n' 而不是空格。
考虑这个简单的例子:

#include<stdio.h>
#define S 8
#define B 50
void main() {
    char small[S] = {"ol"};
    char big[B] = {"my older gradmom see my older sister"};
    int i = 0, j = 0;
    int cpt = 0;
    int smallSize = 0; 

    // loop to retrieve smallSize
    for (i = 0; i < S; i++)
    {
        if (small[i] != '\0')
            smallSize++;
    }

    // main loop
    for (i = 0; i < B; i++)
    {
        // stop if we hit the end of the string
        if (big[i] == '\0')
            break;
        // increment the cpt and small index while the content of big and small are equal
        if (big[i] == small[j])
        {
            cpt++;
            j++;
        }
        // we didn't found the full small word
        else
        {
            j = 0;
            cpt = 0;
        }

        // test if we found the full word, if yes replace char in big by space
        if (cpt == smallSize)
        {
            for (int k = 0; k < smallSize; k++)
            {
                big[i-k] = ' ';
            }
            j = 0;
            cpt = 0;
        }   
    }

    puts(big);
}

您首先需要检索小数组的实际大小。
完成后,如果里面有小字,下一步就是看里面的“大”。如果我们找到它,则用空格替换所有这些字符。

如果你想用一个空格替换整个小词,那么你需要修改这个例子!

我希望这有帮助!

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在以“”分隔的字符串中找到最后一个单词?C#

C#-从任何字符串中找到一个Unicode代码点的代理对?

c++程序,从用户输入一个句子,并计算句子中单词和字符的数量

从字符串数组或列表C#中找到第一个匹配字符串的索引

C#。如何在较大的字符串中找到一个小的字符串?

如何从字符串中删除第一个单词并在C中保留其余句子?

从C中的字符串的每个单词中删除一个子字符串(如果包含)

C#Linq查询以在一个数组中找到以另一个数组中的字符串结尾的字符串

如果在另一列(c)中找到另一列(b)中的值,则在第一列(a)中输入文本

在C字符串中找到最短的单词

C ++多次在字符串中找到单词

如果在字符串中找到一个字符串,则无法更新变量

如果在另一个字符串中找到它们,则用空白替换字符串的字母

C#-在IEnumerable中找到第一个枚举并转换为字符串

如果在字符串中找到,javascript 保存单词

如何在字符串C#中的另一个单词之后直接找到一个单词

按照一个单词在句子C#中出现的次数来组织字符串列表(句子)

如果在 bash 中找到字符串(来自另一个文本文件),则删除 csv 文件中的行

如果在一行中找到特定模式,则查找并替换字符串

Adobe CQ5正则表达式,如果在字符串中找到两个不同的子字符串中的任何一个,它将拒绝整个字符串

为什么这个C程序在字符串中找到第一个唯一字符太慢?

用C中的另一个单词更改字符串中的单词

在字符串python中找到句子时如何提取下一个单词

C / C ++如何将int转换回字符串(一个单词)?

如何在此之后提取第一个字符和数字,直到在字符串中找到一个字符(az)-C#2.0

如何在C ++中的字符串向量中找到重复的单词?

在c中的两个字符串中找到相同的单词

从列表 C# LINQ 中的字符串替换一个单词

从 C 上的字符串中删除第一个单词