在C语言中,统计字符个数是一项常见的任务,可以用于分析文本数据或者处理用户输入。这里我们有两个不同的方法来实现这个功能。
第一段代码主要用于统计英文小写字母、大写字母、数字以及空格和其他非字母数字字符的个数。程序的核心在于`while`循环,它通过`getchar()`函数不断读取用户输入的字符,直到遇到换行符为止。对于每个输入的字符,代码会根据其ASCII值判断并更新相应的计数器。例如,如果字符是小写字母,那么对应的小写字母计数器`zm[]`就会增加;如果是数字,则更新数字计数器`sz[]`;空格增加空格计数器`space`,而其他非字母数字字符则增加异常计数器`e`。程序会打印出各个字符类别及其出现次数。
第二个代码示例则专注于统计输入文本中不同长度的单词数量。它定义了一个最大单词长度`MAXWORD`,并用一个状态变量`state`来跟踪当前是否在单词内部。在遍历输入字符时,如果遇到空格、换行符或制表符,`state`会变为`OUT`,同时更新当前单词长度`nc`对应的计数器`wl[]`。如果单词长度超过`MAXWORD`,则会增加`overflow`计数。当不在单词内部(即`state`为`OUT`)并且遇到非空白字符时,`state`变为`IN`,并开始一个新的单词计数。在循环结束后,程序打印出每个单词长度的统计结果。
这两段代码展示了C语言处理字符和字符串的不同方法,适用于基础的文本分析。它们都是基于控制流语句(如`if`和`while`)和数组来实现的,这在C语言编程中是非常基础且重要的概念。理解这些代码可以帮助开发者掌握C语言的基本语法和逻辑处理,进一步提升编程能力。在实际应用中,可以根据需要对代码进行修改,比如增加对其他特殊字符的处理,或者扩展到更复杂的文本分析任务。