统计一条语句中的空格、字母、数字的个数

xiaoxiao2021-02-28  112

#include<stdio.h> 方案一:int main(){char ch = 0;int space_count = 0; int letter_count = 0;int num_count = 0;while (ch != '\n'){ch = getchar();if (ch == ' ')space_count++; //计数空格个数if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z') letter_count++; //计数字母个数if (ch >= '0' && ch <= '9')num_count++; //计数数字个数putchar(ch);}printf ("space_count: %d\n",space_count);printf ("letter_count: %d\n",letter_count);printf ("num_count: %d\n",num_count);return 0;} 总结:想要统计字符,数字和空格的数量,我们不能用数组的方法去做,因为在定义数组的时候就要把数组的大小也要定义好,但是你并不知道我要输入多少东西,万一你定义的数组装不下我所输入的,那么就很容易产生段错误(访问了一块不属于你的内存空间)。 方案二: int main() { int number = 0, letter = 0, spece = 0; char ch = 0; while (1) { scanf("%c", &ch); if (ch >= '0'&&ch <= '9') { number++; } if (ch == ' ') { spece++; } if (ch >= 'a'&&ch <= 'z' || ch >= 'A'&&ch <= 'Z') { letter++; } if (ch == '\n') { printf("number:%d\n", number); printf("letter:%d\n", letter); printf("spece:%d\n", spece); number = 0; letter = 0; spece = 0; } } system("pause"); return 0; } 总结:这种方案的统计和方案一的统计有所差别,这种统计方案是我统计完一遍字符我不想退出,我想再次输入字符统计字符,数字和空格的数量,上面的只能统计一次,这个可以统计很多次,直到你自己想要退出程序。这种方案和方案一的区别在于方案二的while循环是死循环,也就是程序本身不会自己结束程序,同时把输出给加入到了while中,这样就可以一直统计输出你输入的字符。
转载请注明原文地址: https://www.6miu.com/read-58992.html

最新回复(0)