欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言如何利用ASCII碼表統(tǒng)計(jì)字符串每個(gè)字符出現(xiàn)的次數(shù)

 更新時(shí)間:2023年01月28日 09:26:14   作者:yma16  
這篇文章主要介紹了C語(yǔ)言如何利用ASCII碼表統(tǒng)計(jì)字符串每個(gè)字符出現(xiàn)的次數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

利用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)

    一起來(lái)學(xué)習(xí)C++的構(gòu)造和析構(gòu)

    這篇文章主要為大家詳細(xì)介紹了C++構(gòu)造和析構(gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • C語(yǔ)言初學(xué)者代碼中的常見錯(cuò)誤與問題

    C語(yǔ)言初學(xué)者代碼中的常見錯(cuò)誤與問題

    C語(yǔ)言初學(xué)者犯過的很多錯(cuò)誤都非常典型,在初學(xué)者中非常普遍,于是整理了一下,應(yīng)該對(duì)其他初學(xué)者有借鑒意義
    2013-11-11
  • C++實(shí)現(xiàn)簡(jiǎn)單圖書館管理系統(tǒng)

    C++實(shí)現(xiàn)簡(jiǎn)單圖書館管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單圖書館管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)源代碼

    C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)源代碼

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)源代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 你必須知道的C語(yǔ)言預(yù)處理的問題詳解

    你必須知道的C語(yǔ)言預(yù)處理的問題詳解

    本篇文章介紹了,你必須知道的C語(yǔ)言預(yù)處理的問題。需要的朋友參考下
    2013-05-05
  • C++ Boost Heap使用實(shí)例詳解

    C++ Boost Heap使用實(shí)例詳解

    Boost是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱。Boost庫(kù)是一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱
    2022-11-11
  • C++實(shí)現(xiàn)LeetCode(49.群組錯(cuò)位詞)

    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
  • 淺析C/C++變量在內(nèi)存中的分布

    淺析C/C++變量在內(nèi)存中的分布

    變量在內(nèi)存地址的分布為:堆-棧-代碼區(qū)-全局靜態(tài)-常量數(shù)據(jù)。同一區(qū)域的各變量按聲明的順序在內(nèi)存的中依次由低到高分配空間(只有未賦值的全局變量是個(gè)例外)
    2013-09-09
  • MFC擴(kuò)展DLL中導(dǎo)出類和對(duì)話框的實(shí)現(xiàn)方法

    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)換的使用示例

    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

最新評(píng)論