计算字符串中的单词(C语言)

问题描述 投票:0回答:2

我写了一段代码来计算一个字符串包含多少个单词。我已经尝试了多个输入,并且大多数输入正确,但是有些情况表明我的程序存在基本的逻辑缺陷。例如,如果我在一个空字符串中设置,输出将错误地为1,并且如果我在字符串的末尾添加空格,则由于某种原因,我不知道输出将为1+内实际单词数字符串,并且正如我的代码明显表明的那样,我想删除所有空格/制表符。我的程序基本上是在字符串中执行此操作,但是不幸的是,它并未在字符串末尾执行。我很清楚我的功能有问题,但我不知道是什么。而且我知道可以借助外部库更轻松地实现它,但是我被要求用纯基本代码来实现它。

这是我到目前为止所拥有的:

int get_number_of_words(char input_string[])
{
    int i, j, counter = 0;
    for (i = 0; i < STRING_SIZE; i++)
    {
        if (input_string[i] != ' ')
        {
            counter++;
            j = i;
            while ((input_string[j] != ' '))
                j++;
            i = j;
        }
    }
    return counter;
}

我给你一些输入和输出字符串的例子:

(“ Hello ------> tabs”)-1个字。 (“您好”)-1个字。 (“”)-0个单词(---> tabs“这是一个基本示例” ---> tabs)-5个单词

(“这是一个基本示例”)-还有5个单词稍后,我将不得不考虑不同的标点符号(这些单词中包含的标点符号),但与此同时,我想要的只是掌握核心内容该程序的

c string word-count
2个回答
0
投票

好的,我给你一些输入和输出字符串的例子:

(“ Hello ------> tabs”)-1个字。(“您好”)-1个字。(“”)-0个字(---> tabs“这是一个基本示例” ---> tabs)-5个单词

(“这是一个基本示例”)-以及5个字稍后,我将不得不考虑不同的标点符号(单词中包含的标点符号),但与此同时,我想要的只是掌握程序的核心


0
投票

如果您只是在寻找一种有效的算法,这就是逻辑:

  1. 使用空格分隔/分割句子/(单词字符串)。结果将是一个数组。
  2. 过滤数组以删除任何空白字符串(空格),不需要的单词,例如'is''a''an'。
  3. 计算结果数组的长度。

应该是您的答案。希望您可以将说明转换为程序。

© www.soinside.com 2019 - 2024. All rights reserved.