题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数?
#include<stdio.h>
int main()
{
char c;
int letters=0,spaces=0,digits=0,others=0;
printf("请输入一串任意的字符:\n");
while((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
letters++;
else if(c>='0'&&c<='9')
digits++;
else if(c==' ')
spaces++;
else
others++;
}
printf("字母有%d个,数字有%d个,空格有%d个,其他有%d个",letters,digits,spaces,others);
return 0;
}
扩展资料:
while语句若一直满足条件,则会不断的重复下去。但有时,需要停止循环,则可以用下面的三种方式:
一、在while语句中设定条件语句,条件不满足,则循环自动停止。
如:只输出3的倍数的循环;可以设置范围为:0到20。
二、在循环结构中加入流程控制语句,可以使用户退出循环。
1、break流程控制:强制中断该运行区内的语句,跳出该运行区,继续运行区域外的语句。
2、continue流程控制:也是中断循环内的运行操作,并且从头开始运行。
三、利用标识来控制while语句的结束时间。
参考资料来源:
2020-08-31 · 百度认证:云南新华电脑职业培训学校官方账号
public class Prog7_1{
public static void main(String[] args){
System.out.print(" 请输入一串字符: ");
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();// 将一行字符转化为字符串
scan.close();
count(str);
}
// 统计输入的字符数
private static void count(String str){
String E1 = "[\u4e00-\u9fa5]";// 汉字
String E2 = "[a-zA-Z]";
String E3 = "[0-9]";
String E4 = "\\s";// 空格
int countChinese = 0;
int countLetter = 0;
int countNumber = 0;
int countSpace = 0;
int countOther = 0;
char[] array_Char = str.toCharArray();// 将字符串转化为字符数组
String[] array_String = new String[array_Char.length];// 汉字只能作为字符串处理
for(int i=0;i<array_Char.length;i++)
array_String[i] = String.valueOf(array_Char[i]);
// 遍历字符串数组中的元素
for(String s:array_String){
if(s.matches(E1))
countChinese++;
else if(s.matches(E2))
countLetter++;
else if(s.matches(E3))
countNumber++;
else if(s.matches(E4))
countSpace++;
else
countOther++;
}
System.out.println(" 输入的汉字个数: "+countChinese);
System.out.println(" 输入的字母个数: "+countLetter);
System.out.println(" 输入的数字个数: "+countNumber);
System.out.println(" 输入的空格个数: "+countSpace);
System.out.println(" 输入的其它字符个数: "+countSpace);
}
}
import java.util.*;
public class Prog7_2{
public static void main(String[] args){
System.out.println(" 请输入一行字符: ");
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
scan.close();
count(str);
}
// 统计输入的字符
private static void count(String str){
List<String> list = new ArrayList<String>();
char[] array_Char = str.toCharArray();
for(char c:array_Char)
list.add(String.valueOf(c));// 将字符作为字符串添加到 list 表中
Collections.sort(list);// 排序
for(String s:list){
int begin = list.indexOf(s);
int end = list.lastIndexOf(s);
// 索引结束统计字符数
if(list.get(end)==s)
System.out.println(" 字符‘ "+s+" ’有 "+(end-begin+1)+" 个 ");
}
}
}