我写了一段代码来计算一个字符串包含多少个单词。我已经尝试了多个输入,并且大多数输入正确,但是有些情况表明我的程序存在基本的逻辑缺陷。例如,如果我在一个空字符串中设置,输出将错误地为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个单词稍后,我将不得不考虑不同的标点符号(这些单词中包含的标点符号),但与此同时,我想要的只是掌握核心内容该程序的
好的,我给你一些输入和输出字符串的例子:
(“ Hello ------> tabs”)-1个字。(“您好”)-1个字。(“”)-0个字(---> tabs“这是一个基本示例” ---> tabs)-5个单词
(“这是一个基本示例”)-以及5个字稍后,我将不得不考虑不同的标点符号(单词中包含的标点符号),但与此同时,我想要的只是掌握程序的核心
如果您只是在寻找一种有效的算法,这就是逻辑:
应该是您的答案。希望您可以将说明转换为程序。