gpt4 book ai didi

C++ : WordCount from Char string with pointers. ...?

转载 作者:行者123 更新时间:2023-11-28 00:38:29 25 4
gpt4 key购买 nike

我想传递一个 char 字符串作为指针引用,然后计算这个字符串中的单词...但不知何故,我永远无法计算出正确的单词数......这是我的代码:

#include <iostream>
#include <stdio.h>
using namespace std;

int charCount(const char* pPtr);

int main() {

char wort[] = "Ein Neger mit Gazelle zagt im Regen nie ";
int count(0);

count = charCount(wort);
cout <<count <<endl;

}

int charCount(const char* pPtr) {
int wordCount(0);

while(*pPtr != '\0') {

//Falls EOF Erreicht und vorheriger Buchstabe war kein Blank oder newline dann Wortzaehler erhoehen
if ((*pPtr == '\0') && (*(pPtr-1) !=' ' || *(pPtr-1) != '\n')) {
wordCount++;

}

//Falls Blank oder Newline, und vorheriger Buchstabe war kein Blank oder Newline, Wortzaehler erhoehen
if (((*(pPtr+1) == ' ' || *(pPtr+1) == '\n')) && ((*(pPtr) != ' ' || *(pPtr) != '\n' ))) {
wordCount++;
}
pPtr++;

}
return wordCount;
}

最佳答案

看起来 while(*pPtr != EOF) 实际上应该是 while(*pPtr != NULL)

EOF 在某些系统上为 0(如 NULL),在某些系统上可能为 -1 或任何其他值。

此外,看起来更好的解决问题的方法是使用某种“状态机”,即:

int in_word = 0;
while (*pPtr != NULL){
if ((*pPtr >= 'a' && *pPtr <= 'z') || <same for uppercase>){
in_word = 1;
}
else if (in_word == 1){
wordCount++;
in_word = 0;
}

不确定这是否涵盖了所有内容..但我希望您能了解总体思路。

关于C++ : WordCount from Char string with pointers. ...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20006686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com