用指针方法统计字符串“hello worid we are good people?中单词的个数,规定单词由小写字母组成,单 词之间由空格分开,字符串开始和结尾处没有空格。
时间: 2024-12-26 07:28:08 浏览: 11
要使用指针方法统计给定字符串中的单词个数,我们可以按照以下步骤进行:
1. 初始化两个指针,一个指向字符串的开始(`start`),另一个指向当前正在处理的字符(`current`)。
2. 遍历整个字符串,直到遇到空格或字符串结束。
3. 当找到空格时,检查从`start`到`current`之间的子串是否只包含小写字母。如果是,则增加单词计数器。
4. 将`start`更新为`current + 1`,继续查找下一个单词的开始位置。
5. 如果遍历完字符串还没有遇到空格,则说明最后一个单词可能没有后面跟着空格,所以也要检查一下。
这里是C++代码示例:
```cpp
#include <iostream>
#include <cctype>
int countWords(const std::string& str) {
int wordCount = 0;
size_t start = 0, current = 0;
while (current < str.length()) {
// 判断是否到达字符串末尾
if (current == str.length()) {
break;
}
// 找到单词的结束位置
while (current < str.length() && islower(str[current])) {
current++;
}
// 如果找到的是单词
if (current > start) {
// 检查单词是否只包含小写字母
bool isValidWord = true;
for (size_t i = start; i < current; i++) {
if (!islower(str[i])) {
isValidWord = false;
break;
}
}
if (isValidWord) {
wordCount++;
}
start = current;
}
// 跳过空格
while (current < str.length() && str[current] == ' ') {
current++;
}
}
return wordCount;
}
int main() {
std::string input = "hello worid we are good people?";
int wordCount = countWords(input);
std::cout << "Number of words: " << wordCount << std::endl;
return 0;
}
```
阅读全文