C語(yǔ)言如何利用ASCII碼表統(tǒng)計(jì)字符串每個(gè)字符出現(xiàn)的次數(shù)
利用ASCII碼表統(tǒng)計(jì)字符串每個(gè)字符出現(xiàn)的次數(shù)
在C語(yǔ)言里面寫個(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)文章
一起來(lái)學(xué)習(xí)C++的構(gòu)造和析構(gòu)
這篇文章主要為大家詳細(xì)介紹了C++構(gòu)造和析構(gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03C語(yǔ)言初學(xué)者代碼中的常見錯(cuò)誤與問題
C語(yǔ)言初學(xué)者犯過的很多錯(cuò)誤都非常典型,在初學(xué)者中非常普遍,于是整理了一下,應(yīng)該對(duì)其他初學(xué)者有借鑒意義2013-11-11C++實(shí)現(xiàn)簡(jiǎn)單圖書館管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單圖書館管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)源代碼
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)源代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03C++實(shí)現(xiàn)LeetCode(49.群組錯(cuò)位詞)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(49.群組錯(cuò)位詞),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07MFC擴(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-10Qt?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