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

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

前言

大家好,我是yma16,本文分享用c语言统计ascii的字符出现次数。

c++语法

C++是一种流行的编程语言,其语法如下:

  1. 变量:使用关键字定义变量,例如:int、float、double、char等。变量必须在使用之前声明,并且可以被初始化。变量可以是局部的或全局的。
  2. 语句:使用分号作为语句的结束符号,例如:赋值语句、循环语句、条件语句等。C++支持多种语句和控制结构,包括if、else、switch、for、while、do-while等。
  3. 函数:使用关键字定义函数,例如:int、float、double、void等。函数接受参数并返回一个值。函数可以是内部的或外部的,并可以被重载。
  4. 类:使用class关键字定义类,包括属性和方法。类可以被继承并可以使用访问修饰符控制访问权限。
  5. 指针:指针是一种用于引用内存地址的变量类型。可以使用指针访问和修改变量的值,也可以使用指针进行动态内存分配
  6. 数组:数组是一组具有相同类型的变量。可以使用数组下标访问单个元素,并可以使用循环访问整个数组。
  7. 文件操作:C++可以打开和关闭文件,并可以读写文件内容。

以上是C++的基础语法。同时,C++还有大量的标准库和第三方库,可以方便地实现各种功能。

c++输入输出示例

下面是一个简单的 C++ 输入输出示例:

#include <iostream>
using namespace std;
int main() {
    int a, b, c;
    cout << "请输入三个整数:";
    cin >> a >> b >> c;
    cout << "这三个数的和是:" << a + b + c << endl;
    return 0;
}

运行结果:

请输入三个整数:1 2 3
这三个数的和是:6

在这个示例中,我们使用了 cout 对象向屏幕输出提示信息和计算结果。我们还使用了 cin 对象从用户输入中获取三个整数,并将它们相加输出。注意,我们使用 >> 运算符来从 cin 读取值,使用 << 运算符将值输出到 cout。通过这些简单的输入输出操作,我们可以实现与用户进行交互并执行基本计算。

题目

在C语言里面写个能够统计并打印字符串中字符出现次数

输入一个字符串,输出该字符串中字符出现次数最多的次数。

思路:

遍历一次字符串统计,所有字符出现的次数,对比。

具体思路:

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

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

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

思路一

模拟过程

代码块

c++ 代码如下:

#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);
    }
  }
}

运行正确

思路二

利用ascii的规则,所有的字符都出现在ascii中

这种方式更加简单粗暴,直接利用相同字符对应的数字一样作为数组下标,进行自加

想法很新颖,代码量比较少,效率高。

代码块如下:

其中int(s[i])是将字符换为ascii下标

#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打印的

这是安装ascii的顺序打印的

优化思路

优化打印顺序,记录统计的顺序

代码块如下:

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

结束

本文分享到这结束,如有错误或者不足之处欢迎指出,感谢大家的阅读!

目录
相关文章
|
25天前
|
存储 算法 C语言
【C语言】字符常量详解
字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。
110 11
|
25天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
49 10
|
25天前
|
存储 C语言 开发者
【C语言】格式化输出占位符及其标志字符详解(基于ISO/IEC 9899:2024)
在C语言中,格式化输出通过 `printf` 函数等格式化输出函数来实现。格式说明符(占位符)定义了数据的输出方式,标准ISO/IEC 9899:2024(C23)对这些格式说明符进行了详细规定。本文将详细讲解格式说明符的组成部分,包括标志字符、宽度、精度、长度修饰符和类型字符,并适当增加表格说明。
41 6
|
28天前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
88 4
|
2月前
|
C语言
C语言字符(串)函数
C语言字符(串)函数
|
2月前
|
存储 安全 编译器
深入C语言库:字符与字符串函数模拟实现
深入C语言库:字符与字符串函数模拟实现
|
25天前
|
存储 程序员 C语言
【C语言】文件操作函数详解
C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
43 9
|
25天前
|
存储 Unix Serverless
【C语言】常用函数汇总表
本文总结了C语言中常用的函数,涵盖输入/输出、字符串操作、内存管理、数学运算、时间处理、文件操作及布尔类型等多个方面。每类函数均以表格形式列出其功能和使用示例,便于快速查阅和学习。通过综合示例代码,展示了这些函数的实际应用,帮助读者更好地理解和掌握C语言的基本功能和标准库函数的使用方法。感谢阅读,希望对你有所帮助!
33 8
|
25天前
|
C语言 开发者
【C语言】数学函数详解
在C语言中,数学函数是由标准库 `math.h` 提供的。使用这些函数时,需要包含 `#include <math.h>` 头文件。以下是一些常用的数学函数的详细讲解,包括函数原型、参数说明、返回值说明以及示例代码和表格汇总。
43 6
|
25天前
|
存储 C语言
【C语言】输入/输出函数详解
在C语言中,输入/输出操作是通过标准库函数来实现的。这些函数分为两类:标准输入输出函数和文件输入输出函数。
177 6