C語言如何利用ASCII碼表統(tǒng)計(jì)字符串每個(gè)字符出現(xiàn)的次數(shù)
利用ASCII碼表統(tǒng)計(jì)字符串每個(gè)字符出現(xiàn)的次數(shù)
在C語言里面寫個(gè)能夠統(tǒng)計(jì)并打印字符串中字符出現(xiàn)次數(shù)心想這不是常規(guī)操作嗎?
定義兩個(gè)char數(shù)組,輸入,賦值給另一個(gè)字符數(shù)組
通過一個(gè)for循環(huán)嵌套兩個(gè)for循環(huán),比較,相同的值數(shù)組賦值=‘*’。
然后判斷當(dāng)數(shù)組值不等于0的時(shí)候和原數(shù)組進(jìn)行比較再打印輸出”
我的代碼
#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出現(xiàn)次數(shù):%d\n",s1[i],number);
}
}
}
運(yùn)行正確

##但是老胡的方法更為簡(jiǎn)單粗暴,直接利用相同字符對(duì)應(yīng)的數(shù)字一樣作為數(shù)組下標(biāo),進(jìn)行自加
想法很新穎,代碼也少……服了
#include<stdio.h>
#include<string.h>
#define maxsize 100
int main(void){
char s[maxsize];
scanf("%s",s);
int asc[127]={0};//a-z字符對(duì)應(yīng)ASCII碼表小寫字母97-122,大寫字母是 65-90,小寫大寫相差32
for(int i=0,length=strlen(s);i<length;++i){
asc[int(s[i])]++;//對(duì)應(yīng)的ASCII碼下標(biāo)加1,同一個(gè)字母對(duì)應(yīng)的下標(biāo)都相同,進(jìn)行計(jì)數(shù)
}
for(int j=0;j<123;++j){
if(asc[j]!=0){
printf("字母%c出現(xiàn)次數(shù):%d\n",j,asc[j]);
}
}
}

但是這個(gè)程序還有個(gè)不好的地方,沒有按照輸入字符串的順序打印,而是從A-Z a-z打印的
emmm……
我覺得C的輸入輸出太麻煩還是C++好
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
一起來學(xué)習(xí)C++的構(gòu)造和析構(gòu)
這篇文章主要為大家詳細(xì)介紹了C++構(gòu)造和析構(gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
C++實(shí)現(xiàn)簡(jiǎn)單圖書館管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單圖書館管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
C++實(shí)現(xiàn)LeetCode(49.群組錯(cuò)位詞)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(49.群組錯(cuò)位詞),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
MFC擴(kuò)展DLL中導(dǎo)出類和對(duì)話框的實(shí)現(xiàn)方法
這篇文章主要介紹了MFC擴(kuò)展DLL中導(dǎo)出類和對(duì)話框的實(shí)現(xiàn)方法,詳細(xì)講述了實(shí)現(xiàn)擴(kuò)展DLL中導(dǎo)出類和對(duì)話框的具體步驟與方法,具有不錯(cuò)的實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10
Qt?10進(jìn)制和16進(jìn)制轉(zhuǎn)換的使用示例
在編程過程中,處理16進(jìn)制字符串與10進(jìn)制數(shù)字之間的轉(zhuǎn)換是很常見的需求,本文主要介紹了Qt?10進(jìn)制和16進(jìn)制轉(zhuǎn)換的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09

