编程统计字符串单词个数
时间: 2023-09-16 18:12:18 浏览: 84
下面是一个简单的 Python 代码示例,用于统计给定字符串中单词的数量:
```python
def count_words(string):
# 使用 split() 方法将字符串拆分成单词列表
words = string.split()
# 返回单词列表的长度
return len(words)
# 测试代码
string = "Hello world, this is a test string."
print(count_words(string)) # 输出:7
```
该函数首先使用 `split()` 方法将输入字符串拆分成单词列表,然后返回该列表的长度,即为单词个数。需要注意的是,这个简单的实现假设单词之间用空格分隔。如果需要更复杂的单词分割逻辑,可以考虑使用正则表达式或其他字符串处理工具。
相关问题
在c++输入一个字符串,编程统计其单词个数及字母个数
好的,下面是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
int wordCount = 0, letterCount = 0;
cout << "请输入一个字符串:" << endl;
getline(cin, str);
for (int i = 0; i < str.length(); i++) {
// 判断是否为字母
if (isalpha(str[i])) {
letterCount++;
// 判断是否为单词的结尾
if (i == str.length() - 1 || str[i + 1] == ' ') {
wordCount++;
}
}
}
cout << "单词个数:" << wordCount << endl;
cout << "字母个数:" << letterCount << endl;
return 0;
}
```
这里使用了 `isalpha()` 函数判断是否为字母,使用了 `getline()` 函数输入一行字符串。遍历字符串时,如果遇到字母,就增加字母计数器,同时判断是否为单词的结尾,如果是,则增加单词计数器。最后输出单词个数和字母个数。
输入一行字符(第一个字符有可能是空格),用函数编程统计其中有多少单词。假设单词之间以空格分开。要求如下: (1)在主函数中从键盘输入字符串,字符串的最大长度为80个字符 调用CountWords函数,并统计字符串中的单词个数。 (2)在子函数CountWords中统计字符串中的单词个数。函数原型为: int CountWords(char str[]); (3)**输入提示信息:"Input a string:" **输出提示信息和格式:"Numbers of words = %d\n" **用gets()输入字符串 注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程。
下面是统计单词个数的 C 语言代码实现:
```c
#include <stdio.h>
#include <string.h>
int CountWords(char str[])
{
int count = 0, i, len;
len = strlen(str);
for (i = 0; i < len; i++) {
if (str[i] != ' ' && (i == 0 || str[i - 1] == ' ')) {
count++;
}
}
return count;
}
int main()
{
char str[81];
printf("Input a string: ");
gets(str);
printf("Numbers of words = %d\n", CountWords(str));
return 0;
}
```
解释一下代码:
- `int CountWords(char str[])` 是统计单词个数的函数。使用一个计数器 count,初始值为 0,逐个扫描字符串中的字符。如果当前字符不是空格且前一个字符是空格或者当前字符是第一个字符,则认为是一个新单词,计数器加 1。
- `char str[81]` 声明了一个字符串变量,最大长度为 80,因为还要留一个字符存储字符串末尾的空字符。
- `printf("Input a string: ");` 输出提示信息,让用户输入字符串。
- `gets(str);` 从键盘输入字符串,注意不要使用 `scanf` 函数,因为它会在空格处停止读取。
- `printf("Numbers of words = %d\n", CountWords(str));` 输出统计结果,注意换行符要放在双引号外面。
需要注意的是,由于 gets 函数有缺陷,容易导致缓冲区溢出,所以建议使用 fgets 函数代替,更加安全。
阅读全文