字符串统计-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);
    }
}



目录
相关文章
|
3月前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
171 83
|
1月前
|
C语言
【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
52 13
|
1月前
|
存储 Java BI
java怎么统计每个项目下的每个类别的数据
通过本文,我们详细介绍了如何在Java中统计每个项目下的每个类别的数据,包括数据模型设计、数据存储和统计方法。通过定义 `Category`和 `Project`类,并使用 `ProjectManager`类进行管理,可以轻松实现项目和类别的数据统计。希望本文能够帮助您理解和实现类似的统计需求。
101 17
|
3月前
|
存储 安全 Java
Java零基础-字符串详解
【10月更文挑战第18天】Java零基础教学篇,手把手实践教学!
124 60
|
3月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
76 26
|
2月前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
92 10
|
3月前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
182 4
|
3月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
104 8
|
3月前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
69 6
|
3天前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
36 14