首页 > 代码库 > c - 统计字符串"字母,空格,数字,其他字符"的个数和行数.
c - 统计字符串"字母,空格,数字,其他字符"的个数和行数.
1 #include <stdio.h> 2 #include <ctype.h> 3 4 using namespace std; 5 6 /* 7 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 8 */ 9 10 void11 count() {12 //统计个数.13 int letters = 0; 14 int spaces = 0; 15 int digit = 0;16 int others = 0; 17 char curChar;18 //注意的是,对(一行中)逐个字符进行读取时,‘\n‘对应ASCII值为10,而不是0,所以需要跟‘\n‘判断(不同于逐句判断).19 while((curChar = getchar()) != ‘\n‘) {20 if(isalpha(curChar)) //检查参数curChar是否为英文字母,在标准c中相当于使用“isupper(curChar)||islower(curChar)”21 ++letters;22 else if(isdigit(curChar)) //检查参数curChar是否为阿拉伯数字0到9.23 ++digit;24 else if(isspace(curChar))25 ++spaces;26 else ++others;27 }28 29 printf("letters:%d, digits:%d, spaces:%d,others:%d\n", letters, digit, spaces, others);30 //cout<<"letters:"<<letters<<",digits:"<<digit<<",spaces:"<<spaces<<",others:"<<others<<endl;31 }32 33 //统计行数.34 int35 countLines(char *input) {36 int lns = 0;37 while(gets(input))38 ++lns;39 return lns;40 }41 42 int43 main(void) {44 printf("enter a string:");45 count();46 47 //char *t;48 //gets(t); 49 //Run-Time Check Failure #3 - The variable ‘t‘ is being used without being initialized.50 /*51 值得注意的是,如果不小心传递给gets函数的参数是为开辟空间的指针变量‘t‘,会报以上的异常.其实原因也很简单,t没有得到内存空间(即没有指向内存中的合法空间),放到gets中自然不能被使用.52 */53 54 char cs[10240];55 int lns = countLines(cs);56 printf("lines:%d\n", lns);57 }
c - 统计字符串"字母,空格,数字,其他字符"的个数和行数.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。