C语言实现统计单词数与合并连续数字

4星 · 超过85%的资源 需积分: 10 27 下载量 26 浏览量 更新于2024-11-18 收藏 536B TXT 举报
"该资源提供了一个C语言程序,用于统计字符串中的单词个数,并将连续出现的数字存储到一维数组中。程序首先定义了一个名为`CountWord`的函数,用于计算字符串中单词的数量,包括处理开头有空格的情况。然后,`conversion`函数将字符串中的连续数字提取出来,存入一个整型一维数组`a`中。最后,`main`函数读取用户输入的字符串,调用这两个函数并打印结果。" 在C语言中,这个程序实现了一些关键的字符串处理和字符分析功能: 1. **统计单词个数**:`CountWord`函数通过遍历字符串来计算单词数量。它使用两个指针`p`和`q`,初始化时`q`指向前一个字符,`p`指向当前字符。当遇到一个非空字符时,如果前一个字符是空字符(即单词边界),则计数器`count`加一。这个函数考虑了单词可能以空格开头的情况。 2. **处理连续数字**:`conversion`函数用于处理字符串中的连续数字。它使用一个整型数组`a`来存储这些数字。当遇到数字字符时,将其转换为整数并累加到当前数组元素。遇到非数字字符时,更新数组索引`i`,表示新单词的开始。最后,遍历数组`a`并打印其中的数字。 3. **主函数`main`**:`main`函数负责获取用户输入的字符串,调用`CountWord`和`conversion`函数。`gets(str)`用于读取一行用户输入,然后依次调用两个函数,先打印单词数,再打印提取出的数字。 4. **预处理指令`#include<stdio.h>`**:这是C语言的标准输入输出库,包含了`printf`和`gets`等函数的声明。 5. **常量定义`#define MAX 100`**:定义了一个最大长度为100的字符数组,用于存储用户输入的字符串。 6. **变量声明**:`char str[MAX]`定义了一个大小为100的字符数组,用于存储字符串;`inta[MAX]`定义了一个大小为100的整型数组,用于存储连续的数字。 7. **循环与条件判断**:程序中使用了多个`while`循环和`if`语句,以处理字符串中的各种情况,如查找单词边界、处理数字等。 这个程序提供了基础的文本分析功能,可以作为一个起点,对于学习C语言处理字符串和字符序列的初学者来说,这是一个很好的实践案例。不过,要注意的是,`gets`函数存在缓冲区溢出的风险,实际编程时应避免使用,可以替换为`fgets`函数以提高安全性。