C语言实现统计字符串单词数及长度

需积分: 15 0 下载量 161 浏览量 更新于2024-09-09 收藏 737B TXT 举报
"C语言中关于字符串处理的编程实践" 在C语言中,字符串处理是一项基础且重要的任务。本示例程序展示了如何读取用户输入的以句点(".")结束的一行文本,然后统计其中的单词数量,并输出每个单词的字符数。这个程序的核心在于识别和分割由空格分隔的单词,并对每个单词进行计数和长度计算。 首先,我们看到程序中定义了两个二维字符数组`char res[100][100]`和一个整型变量`t`,用于存储单词和它们的个数。接着是主函数`int main()`,在其中,我们初始化了一些变量,如`int inword=0`(表示是否在单词内部)、`int word=0`(计数器,记录单词个数)和`int k=0`(用于存储当前单词的字符数)。 用户输入的字符串被存储在`s`数组中,通过`gets(s)`函数获取。接下来,程序进入一个while循环,直到遇到句点为止。在循环中,我们检查当前字符`si`,如果它不是空格或句点,那么我们就认为它属于某个单词的一部分。通过`for`循环,我们将这个单词的字符复制到`res[word][k++]`,并在单词结束时添加空字符`\0`来表示字符串的结束。 在单词结束之后,如果遇到句点,我们会再次添加空字符`\0`并跳出循环。然后更新`word`计数器,进入下一个单词的处理。循环结束后,我们遍历`res`数组,使用`strlen()`函数计算每个单词的长度,并打印出来。 这个程序体现了C语言中字符串处理的基本技巧,包括使用`gets()`读取输入、使用`for`和`while`循环进行条件判断、字符数组的动态填充以及利用`strlen()`计算字符串长度。此外,程序还展示了如何处理用户输入的边界情况,例如句点和空格。 通过理解并实践这样的代码,开发者可以深入掌握C语言中的字符串操作,这对于编写更复杂的程序,如文本分析、文件处理等都是必要的基础。同时,这也提醒我们在编程时要注意边界条件和错误处理,确保程序的健壮性。