C语言如何利用ASCII码表统计字符串每个字符出现的次数

目录
  • 利用ASCII码表统计字符串每个字符出现的次数
    • 我的代码
    • 运行正确
  • 总结

利用ASCII码表统计字符串每个字符出现的次数

在C语言里面写个能够统计并打印字符串中字符出现次数心想这不是常规操作吗?

定义两个char数组,输入,赋值给另一个字符数组

通过一个for循环嵌套两个for循环,比较,相同的值数组赋值=‘*’。

然后判断当数组值不等于0的时候和原数组进行比较再打印输出”

我的代码

#include<stdio.h>
#include<string.h>
#define maxsize 100
int main(void){
	char s[maxsize],s1[maxsize];
	scanf("%s",s);
	for(int i=0,length=strlen(s);i<length;++i){
		s1[i]=s[i];
	}
	for(int i=0,length=strlen(s);i<length;++i){
		for(int j=i+1;j<length;++j){
			if(s[i]==s[j]){
				s1[j]='*';
			}
		}
		if(s1[i]!='*'){
			int number=0;
			for(int k=0;k<length;++k){
				if(s1[i]==s[k]){
					++number;
				}
			}
			printf("%c出现次数:%d\n",s1[i],number);
		}
	}
}

运行正确

##但是老胡的方法更为简单粗暴,直接利用相同字符对应的数字一样作为数组下标,进行自加

想法很新颖,代码也少……服了

#include<stdio.h>
#include<string.h>
#define maxsize 100
int main(void){
	char s[maxsize];
	scanf("%s",s);
	int asc[127]={0};//a-z字符对应ASCII码表小写字母97-122,大写字母是 65-90,小写大写相差32
	for(int i=0,length=strlen(s);i<length;++i){
		asc[int(s[i])]++;//对应的ASCII码下标加1,同一个字母对应的下标都相同,进行计数
	}
	for(int j=0;j<123;++j){
		if(asc[j]!=0){
			printf("字母%c出现次数:%d\n",j,asc[j]);
		}
	}
}

但是这个程序还有个不好的地方,没有按照输入字符串的顺序打印,而是从A-Z a-z打印的

emmm……

我觉得C的输入输出太麻烦还是C++好

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C语言统计字符个数代码分享

    C语言实现统计字符个数 #include<stdio.h> int main() { int sz[10]={0},zm[26]={0},z[26]={0},i,space=0,e=0,t=0; char c; printf("请输入一段字符,统计其中各字符的数量\n"); while((c=getchar())!='\n') { if(c<='z'&&c>='a') zm[c-'a']++; else if(c<='Z'&&

  • 统计输入字符各个字母出现频率的解题思路

    本文跟大家分享的是编写一个程序,能够计算输入字符各个字母出现的频率,具体如下 先跟大家展示一下最终结果: 刚刚接手题目的时候,我想得很复杂,因为26个字母中有大小写嘛,小写a~z,大写A~Z 但是,无论是大写还是小写,字母都只有26个,在此,当输入大写字母的时候,我们就将其转换为小写就ok啦 大写字母转换为小写字母,有个很方便的函数tolow(),在ctype.h中,详情文章末. 看过前一篇文章<c语言:计算输入字符个数>中使用数组统计单词长度的方法,在统计字母的个数的时候,依旧可以,只不过有

  • C语言字符函数isalnum()和iscntrl()详解

      isalnum() 函数用于检查所传的字符是否是字母或者十进制数字.它的函数原型如下: _CRTIMP int __cdecl isalnum(int _C);   返回值为非零(真)表示参数c是字母或者十进制数字,返回值为零(假)表示参数c既不是十进制数字,也不是字母.   下面通过一个简单的例子来演示它的用法. #include <stdio.h> #include <ctype.h> int main() { int var1 = 'a'; int var2 = '8';

  • C语言如何利用ASCII码表统计字符串每个字符出现的次数

    目录 利用ASCII码表统计字符串每个字符出现的次数 我的代码 运行正确 总结 利用ASCII码表统计字符串每个字符出现的次数 在C语言里面写个能够统计并打印字符串中字符出现次数心想这不是常规操作吗? 定义两个char数组,输入,赋值给另一个字符数组 通过一个for循环嵌套两个for循环,比较,相同的值数组赋值=‘*’. 然后判断当数组值不等于0的时候和原数组进行比较再打印输出” 我的代码 #include<stdio.h> #include<string.h> #define m

  • java统计字符串中指定元素出现次数方法

    本文实例讲解了统计文本中某个字符串出现的次数或字符串中指定元素出现的次数方法,分享给大家供大家参考,具体内容如下 运行效果图: 程序查找的上此文件带"a"的字符在多少次 具体代码如下 package com.zuidaima.util.string; import java.io.*; public class CountString { public static int count(String filename, String target) throws FileNotFoun

  • java实现统计字符串中字符及子字符串个数的方法示例

    本文实例讲述了java实现统计字符串中字符及子字符串个数的方法.分享给大家供大家参考,具体如下: 这里用java实现统计字符串中的字符(包括数字.大写字母.小写字母以及其他字符)个数,以及字符串的子字符串的个数. 运行效果图如下: 具体代码如下: import java.util.Scanner; public class Counter { static Scanner scanner = new Scanner(System.in); public static void count(Str

  • Java统计字符串中字符出现次数的方法示例

    本文实例讲述了Java统计字符串中字符出现次数的方法.分享给大家供大家参考,具体如下: package com.wenzhi; import java.util.Scanner; public class Test01 { public static void main(String args[]) { Scanner scan = new Scanner(System.in); System.out.println("请你输入字符"); String str = scan.nextL

  • JS实现统计字符串中字符出现个数及最大个数功能示例

    本文实例讲述了JS实现统计字符串中字符出现个数及最大个数功能.分享给大家供大家参考,具体如下: js判断字符串中某字符出现的个数 今天碰到的一道题,比较简单,为了防止眼高手低还是写一下吧 <html> <head> <meta charset="utf-8" /> <title>www.jb51.net js判断字符串中某字符出现的个数</title> </head> <body> <script

  • Java案例使用集合方法实现统计任意字符串中字符出现的次数

    需求:键盘录入一个字符串,统计其中各个字符出现的顺序 分析: 1.使用Scanner类获取一个字符串 2.创建HashMap集合,如果追求统计字符的美观性,可以使用TreeMap 3.遍历字符串得到每一个字符并将其作为TreeMap的键 4.通过键去集合中找相对应的值,看返回值是什么? 返回null:说明该字符在集合中不存在,就将该字符为键,次数1为值进行存储 返回的不是null:说明该字符在集合中存在,就再次将该字符作为键,次数+1为值进行存储 5.遍历集合 public class Tree

  • php中计算未知长度的字符串哪个字符出现的次数最多的代码

    用到的函数: str_split:把字符串分割到数组中.类似的函数explode() 函数把字符串分割为数组.array_count_values:用于统计数组中所有值出现的次数.arsort:对数组进行逆向排序并保持索引关系.主要用于对那些单元顺序很重要的结合数组进行排序.$str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas";//任意长度字符串 复制代码 代码如下: $arr=str_split($str); $arr

  • java字符串遍历以及统计字符串中各类字符

    本文实例为大家分享了java字符串遍历,以及java统计字符串中各类字符的具体代码,供大家参考,具体内容如下 1.需求:获取字符串中的每一个字符 分析: A:如何能够拿到每一个字符呢?   char charAt(int index) B:我怎么知道字符到底有多少个呢? int length() public class StringTest { public static void main(String[] args) { // 定义字符串 String s = "helloworld&qu

  • Oracle Translate 统计字符出现的次数示例代码

    特殊用法:统计字符串中 E 出现的次数: SELECT LENGTHB(TRANSLATE('ABCDEFGEFGDBE','E'||'ABCDEFGEFGDBE','E')) FROM DUAL; 等同于: SELECT LENGTHB('ABCDEFGEFGDBE')-LENGTHB(REPLACE('ABCDEFGEFGDBE','E','')) FROM DUAL; Translate 的用法 一.语法: TRANSLATE(string,from_str,to_str) 二.目的 返回

  • Go语言利用Unmarshal解析json字符串的实现

    简单的解析例子: 首先还是从官方文档中的例子: package main import (     "fmt"     "encoding/json" ) type Animal struct {     Name  string     Order string } func main() {     var jsonBlob = []byte(`[         {"Name": "Platypus", "Or

随机推荐