Python 与 C 语言:一行字符串中单词个数统计的实现与解析
Python 实现 ```python # 读取输入的字符串 input_str = input() # 去除字符串首尾的空格 input_str = input_str.strip() if input_str == "": print(0) else: # 按空格分割字符串 words = input_str.split() # 输出单词的个数 print(len(words)) ``` 代码解释: 1. 输入读取:使用`input()`函数读取用户输入的一行字符串。 2. 去除首尾空格:使用`strip()`方法去除字符串首尾的空格,避免因首尾空格影响单词个数的统计。 3. 空字符串判断:如果去除空格后字符串为空,说明没有单词,直接输出 0。 4. 分割字符串并统计单词个数:使用`split()`方法按空格分割字符串,得到一个单词列表`words`,然后使用`len()`函数计算列表的长度,即单词的个数。 C 语言实现 ```c #include <stdio.h> #include <string.h> #include <ctype.h> #define MAX_LEN 1000 int main() { char input_str[MAX_LEN + 1]; // 读取输入的字符串 fgets(input_str, sizeof(input_str), stdin); // 去除换行符 input_str[strcspn(input_str, "\n")] = 0; int len = strlen(input_str); int word_count = 0; int in_word = 0; for (int i = 0; i < len; i++) { if (isspace(input_str[i])) { in_word = 0; } else if (!in_word) { word_count++; in_word = 1; } } // 输出单词的个数 printf("%d\n", word_count); return 0; } ``` 代码解释: 1. 变量定义与输入读取: - 定义字符数组`input_str`用于存储输入的字符串,数组大小为`MAX_LEN + 1`,为字符串结尾的空字符`'\0'`留出空间。 - 使用`fgets()`函数读取用户输入的字符串。 2. 去除换行符:使用`strcspn()`函数找到换行符的位置,将其替换为`'\0'`,去除换行符。 3. 单词个数统计: - 使用`in_word`作为标志变量,用于标记当前是否在一个单词内。 - 遍历字符串,当遇到空格时,将`in_word`置为 0,表示不在单词内;当遇到非空格字符且`in_word`为 0 时,说明进入了一个新的单词,单词个数`word_count`加 1,并将`in_word`置为 1。 4. 输出结果:使用`printf()`函数输出单词的个数。 ######[AI问答 | 658点数解答 | 2025-12-07 17:39:44]
- C++ 求解:最少操作次数让字符串无子串 “friend” (字节豆包 | 153点数解答 | 2024-08-17 16:29:54)478
- C++ 求解:最少操作次数让字符串不再含 “friend” 子串!(讯飞星火 | 260点数解答 | 2024-08-17 16:30:49)464
- Python 巧解:最少操作次数让字符串告别“friend”子串(字节豆包 | 139点数解答 | 2024-08-18 13:04:14)401
- 3414 数字游戏:Python 求解 8 位 01 字符串中 1 的个数 (字节豆包 | 106点数解答 | 2024-10-27 14:23:27)426
- 巧用字符添加,计算字符串中“our”最大数量及开发注意要点(DeepSeek | 376点数解答 | 2025-10-30 19:20:06)78
- C 语言实现:处理字符串生成最多 “our” 串,附代码及关键开发注意点 (DeepSeek | 257点数解答 | 2025-10-30 19:20:36)107
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)458
- 星际编码大赛终极对决:机械星AI与异星人激战“逆序对”统计难题(字节豆包 | 509点数解答 | 2025-04-19 17:33:00)278
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)414
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)405
- C++实现戴夫后院抵御僵尸的植物选择策略(DeepSeek | 773点数解答 | 2026-01-19 19:20:57)43