镜缘浮影 小人本住在 苏州的城外 家里有屋又有田 生活乐无边

那些年我们一起忘掉的C (七).字符统计

2016-11-23
wilmosfang
c
原文地址 http://soft.dog/2016/11/23/c-basic-07/

前言

多重分支的选择语句,可以用来进行统计


概要


字符串统计

输入一行字符串,找出其中大写字母、小写字母、数字以及其他字符的个数

代码注解

#include <stdio.h>
#define LENGTH 40 

main()
{
	int upcase=0,lowcase=0,num=0,othercase=0; //定义四个整型变量,分别用来存储大写,小写,数字和其它字符的个数,并且赋初值0
	char c[LENGTH],*p; //定义一个字符型数组用来存储输入的字符串,然后定义一个指针来对这个字符数组进行操作
	printf("please input a string (less then %d chars):\n",LENGTH);
	scanf("%s",c); //将输入的字符串存储到c数组中
	for(p=c;*p != '\0';p++) //使用指针p遍历c数组中字符串的每个字符,字符串在数组中,这里容易出错的是,应该使用 *p 来与'\0' 进行比较,而不是p,*p代表的是p所指示的内容,p代表的是一个地址,p 与 '\0' 这个字符串进行比较常常不报错,但是会产生意想不到的结果
	{
		if (*p >= 'A' && *p <= 'Z') upcase++;  //如果是大写字母,就将upcase加一
		else if(*p >= 'a' && *p <= 'z')lowcase++; //如果是小写字母,就将lowcase加一
		else if(*p >= '0' && *p <= '9')num++;  //如果是数字,就将num加一
		else othercase ++;	//如果是其它,就将othercase加一
	}
	printf(" total upcase is :%d\n total lowcase is :%d\n total number is :%d\n total othercase is :%d\n",upcase,lowcase,num,othercase); //将结果进行打印
	return 0;
}

思路

将输入字符串进行保存,然后遍历,逐个判断累计

基础知识点

  • 数组的定义
  • 指针的用法
  • 输入输出函数的用法
  • 多重分支的选择
原文地址 http://soft.dog/2016/11/23/c-basic-07/

评论