《程序设计基础实训指导教程-c语言》
ISBN 978-7-03-032846-5
p74
4.1.2 上级实训内容
【实训内容7】输入一字符串,分别统计该字符串中英文字母、数字字符和其他字符出现的个数
for循环使用循环变量调用字符数组
#include<stdio.h>
#include<string.h>
#define MAX 999
int main(void)
{
char str[MAX];
int a=0,b=0,c=0,i;
puts("输入字符串:");
gets(str);
puts("输入的字符串为:");
puts(str);
for(i=0;i<MAX;i++)
{
if(str[i]>='0'&&str[i]<='9')
{
a++;
}
else if(str[i]>='a'&&str[i]<='z')
{
b++;
}
else if(str[i]>='A'&&str[i]<='Z')
{
b++;
}
else if(str[i]=='\0') break; //当遇到数组结束标识符是结束循环,避免循环到MAX
else
{
if(str[i]==' ') continue; //空格不算其他字符
else c++;
}
}
printf("英文字母有%d个\n数字字符有%d个\n其他字符有%d个",b,a,c);
}
【程序更新】2020/4/26
修改:字符数组调用方式,使用指针指向字符串
《程序设计基础-c语言》杨莉 刘鸿翔
ISBN-978-7-03-032903-5
p137
习题5
1.接受用户输入的一行字符,以按Enter建结束,分别统计其中的大写字母、小写字母、空格、数字和其他字符的个数
for循环使用指针调用字符数组
#include<stdio.h>
#include<string.h>
#define MAX 999
int main(void)
{
char str[MAX],*string;
int shu=0,english=0,t=0,xiao=0,da=0,null=0;
puts("输入字符串:");
gets(str);
string=str; //字符数组首地址赋给字符指针变量string
puts("输入的字符串为:");
printf("%s",string);
for( ; *string!='\0';string++)
{
if(*string>='0'&&*string<='9')
{
shu++;
}
else if(*string>='a'&&*string<='z')
{
english++;
xiao++;
}
else if(*string>='A'&&*string<='Z')
{
english++;
da++;
}
else if(*string=='\0') break; //当遇到数组结束标识符是结束循环,避免循环到MAX
else
{
if(*string==' ') //空格不算其他字符
{
null++;
}
else t++;
}
}
printf("\n英文字母有%d个\n\t其中大写字母有%d个,小写字母有%d个\n数字字符有%d个\n空格有%d个\n其他字符有%d个",english,da,xiao,shu,null,t);
}
【程序更新】2020/5/2
修改: (1)加入字符串函数判断字母,数字,英文字符
(2)统计变量传入数组,使用指针引用
#include <stdio.h>
#include <string.h>
#define MAX 99
int main(void){
char str[MAX];
int i,sum[5]={0};
puts("输入字符串:\n");
gets(str);
for(i=0;str[i]!='\0';i++){
if(isalpha(str[i])!=0){
if(isupper(str[i])!=0){
sum[0]++;
}
else if(islower(str[i])!=0){
sum[1]++;
}
}
else if(isdigit(str[i])!=0){
sum[2]++;
}
else if(str[i]==' '){
sum[3]++;
}
else{
sum[4]++;
}
}
printf("大写字母:%d\n小写字母:%d\n数字:%d\n空格:%d\n其他字符:%d\n",*(sum+0),*(sum+1),*(sum+2),*(sum+3),*(sum+4));
}