字符串统计-C语言/Java

简介: 字符串统计-C语言/Java

描述

       计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次。数据范围: 1≤n≤500


例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。


输入描述

       输入一行没有空格的字符串。


输出描述

       输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。


示例1

输入:abc

输出:3


示例2

输入:aaa

输出:1

     

将字符串中的每个元素强制转化为ASCll码,作为新建数组的下标,数组的值代表字符串中每种元素的个数,最后遍历数组来统计共出现字符种类的数量。


C语言


#include <stdio.h>
#include<string.h>
int main() {
    char str[500];
    scanf("%s",str);
    //存放128种字符的个数
    int con[128]={0};
    //以字符的ASCLL码作为下标存于数组中
    for (int i=0; i<strlen(str);i++) {
            //一种字符第一次出现
            if(con[(int)str[i]]==0)
            {
                con[(int)str[i]]=1;
            }
            //一种字符出现一次以上
            else 
            {
                con[(int)str[i]]+=1;
            }
    }
    //统计元素的种类
    int count=0;
    for (int i=0; i<128;i++) {
        if(con[i]!=0)
        count++;
    }
    printf("%d",count);
    return 0;
}


Java


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str=in.next();
        //存放128种字符的个数
        int[] index=new int[128];
        //将字符串转化为字符数组,并遍历整个数组,x表示数组中的元素
        for(char x:str.toCharArray()){
            if(x=='\n')
                break;
            else {
                //一种字符第一次出现
                if(index[x]==0)
                index[x]=1;
                //一种字符出现一次以上
                else
                index[x]+=1;
            }
        }
        //统计不同字符数量
        int count=0;
        for(int i=0;i<128;i++){
            if(index[i]!=0)
            count++;
        }
        System.out.println(count);
    }
}



目录
相关文章
|
10天前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
28 15
|
13天前
|
Java
JAVA易错点详解(数据类型转换、字符串与运算符)
JAVA易错点详解(数据类型转换、字符串与运算符)
39 4
|
19天前
|
C语言 C++
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
|
27天前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
44 3
|
27天前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
13 2
|
1月前
|
存储 移动开发 Java
java核心之字符串与编码
java核心之字符串与编码
16 2
|
1月前
|
Java
Java实现:将带时区的时间字符串转换为LocalDateTime对象
通过上述方法,你可以将带时区的时间字符串准确地转换为 `LocalDateTime`对象,这对于处理不需要时区信息的日期和时间场景非常有用。
456 4
|
10天前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
25 3
|
固态存储 JavaScript Go
《C语言及程序设计》实践参考——学生成绩统计
返回:贺老师课程教学链接 【项目1-学生成绩统计】 每位同学的信息学号、姓名、C、高数、英语成绩。定义一个学生成绩的结构体数组,其中的数据成员包括学号(char num[13])、姓名(name)、三门课的成绩(grade)、总分(score)、均分(average))。 (1)从键盘上输入N名学生的信息(N定义为常变量); (2)求出每名同学的总分和均分,并存储在结
1661 0
|
1天前
|
存储 缓存 C语言
【c语言】简单的算术操作符、输入输出函数
本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
17 10