c語言輸入一行字串,統計每個字母出現的次數? 比如 a 1次b 0次c 10次

2021-03-19 14:24:27 字數 6408 閱讀 2878

1樓:匿名使用者

#include

#include

int main()

輸入一行字串,統計每個字母出現的次數?(比如:a:1次 b:0次 c:10次

2樓:匿名使用者

#include

void main()

for ( i=0;i<26;i++ ) if ( a[i] ) printf("%c:%d次 ",i+'a',a[i]); printf("\n");

for ( i=0;i<26;i++ ) if ( b[i] ) printf("%c:%d次 ",i+'a',b[i]); printf("\n");}

c語言統計字串中每個字元出現的次數

3樓:凌亂心扉

#include

#include

int findsub(char*src,char*s)}}return n;

}int main(void)

4樓:匿名使用者

一、演算法分析:

要統計每個字元出現的個數,那麼就要為每個字元做一個統計值,可以用陣列實現。

然後輸入字串。

遍歷字串,對每個字元進行統計。

輸出結果。

二、參考**:

#include

int main()

;//用來統計個數。

char str[200];//儲存字串。

int i;

gets(str);//輸入字串。

for(i = 0; str[i]!='\0'; ++i)//遍歷字串。

**t[str[i]]++;//統計個數。

for(i=0;i<128; i ++)//遍歷統計到的值。

if(**t[i]!=0)//如果出現過則列印值,及個數。

printf("%c:%d\n", i, **t[i]);//輸出結果。

return 0;}

5樓:匿名使用者

邏輯錯了,按照你輸入的字串aabbccddeeffgg

a的統計不會有問題,但是後面的都會出錯

for(i=0;i第一個a不進內部迴圈,let[0]會被賦值

//第二個a進入內部迴圈,在j為0時給let[0].count自增,並跳出迴圈

//第三個b進入內部迴圈,找不到相同字母,跑完迴圈,let[1]會被賦值

//第四個b進入內部迴圈,在j為2時給let[2].count自增

//但是實際上此時let[2]是沒有資料的,你應該是給let[1].count自增

for(j=0;j

錯誤就像上面寫的那樣

其實你這個方法對那些交叉排列的字元來說,更加不好進行統計

如果你要輸入的字元是某一個集合,你完全可以用一個長度為字符集大小的陣列來儲存各字元的出現次數

比如全為小寫字母時,你可以宣告一個int **t[26]

陣列的下標可以標識字元,0 == 'a' - 'a'、1 == 'b' - 'a'、...、25 == 'z' - 'a'

自己考慮

c語言 輸入一行字元,統計每個數字字元出現的次數?(例如: 0:1次 1:0次 2:5次)

6樓:聽不清啊

#include

int main()

;scanf("%c",&c);

while(c!='\n')

for(i=0;i<10;i++)

printf("%d: %d\n",i,a[i]);

return 0;}

c語言程式設計:輸入一串字母,統計每個字母出現的次數

7樓:莫道無情

c語言程式如下:

#include

int main()

;//用於儲存字元的個數

gets(a);//輸入字元

//開始比較

for (int x = 0; x < 24; x++) }if (s[x]>=1)//只輸出輸入中有的字母 的個數}

getchar();

return 0;}

8樓:wsp竹木

#include

void main()

; //陣列s用來統計每個小寫字母的個數printf("please input a string:\n");

scanf("%c",&ch);

while(ch!='\n') //輸入一行字元,以回車鍵結束

printf("\n");

for(i=0;i<26;i++)

if(s[i]) //只輸出輸入過的字母統計printf("%c:%d\n",(char)(i+'a'),s[i]);

//(char)(i+'a')用強制型別轉換,輸出對應字母}

編寫一個c語言程式:從鍵盤讀入一行文字,統計每個英文字母出現的次數

9樓:匿名使用者

對於每個英文字母分別判斷個數,並累計,最終輸出即可。

一、演算法:

1、迴圈讀取字元,直到換行為止。對於每個字元,執行以下流程。

2、判斷是否為英文字母,即小寫和大寫兩種。

3、如果是英文字母,則統計個數。

輸入部分,可以存為陣列,也可以每輸入一個字元計算一次。

二、參考**:

#include

int main()

;while((c=getchar())!='\n')//讀取每個字元,直到遇到換行為止。

for(c=0;c<26;c++)//輸出大寫字母統計結果。

if(**t[c]!=0) printf("%c:%d\n", c+'a', **t[c]);

for(c=26;c<52;c++)//輸出大寫字母統計結果。

if(**t[c]!=0) printf("%c:%d\n", c-26+'a', **t[c]);

return 0;}

10樓:

#include

#include

#define max 100int main()

; // count 陣列用來儲存各個字母出現的次數

scanf("%s", str);

while(str[i] != '\0')if (str[i] >= 'a' && str[i] <= 'z')

i++;

}for (i = 0; i < 26; i++)for (i = 26; i < 52; i++)return 0;}

11樓:匿名使用者

#include

int main(void)

;while ((a = getchar()) != '\n')}}

for (i=0;i<26;++i)

else

}printf("\n");}

編寫一個c語言程式:從鍵盤讀入一行文字,統計每個英文字母出現的次數。

12樓:

#include

#include

#define max 100int main()

; // count 陣列用來儲存各個字母出現的次數

scanf("%s", str);

while(str[i] != '\0')if (str[i] >= 'a' && str[i] <= 'z')

i++;

}for (i = 0; i < 26; i++)for (i = 26; i < 52; i++)return 0;}

13樓:貢越納喇易文

對於每個英文字母分別判斷個數,並累計,最終輸出即可。

一、演算法:

1、迴圈讀取字元,直到換行為止。對於每個字元,執行以下流程。

2、判斷是否為英文字母,即小寫和大寫兩種。

3、如果是英文字母,則統計個數。

輸入部分,可以存為陣列,也可以每輸入一個字元計算一次。

二、參考**:

#include

int main()

;while((c=getchar())!='\n')//讀取每個字元,直到遇到換行為止。

for(c=0;c<26;c++)//輸出大寫字母統計結果。

if(**t[c]!=0) printf("%c:%d\n", c+'a', **t[c]);

for(c=26;c<52;c++)//輸出大寫字母統計結果。

if(**t[c]!=0) printf("%c:%d\n", c-26+'a', **t[c]);

return 0;}

用c語言編寫一個程式,輸入一個字串,統計其中各個字元出現的次數

14樓:一個青年

源程式**如下:

#include "pch.h"

#define _crt_secure_no_warnings//vs環境下需要,vc不需要

#include

int main()

else if ((c >= 'a') && (c <= 'z'))//判斷是否是小寫字母

else if ((c >= 'a') && (c <= 'z'))//判斷是否是大寫字母

else if(c == ' ')//判斷是否是空格

else //判斷是否其他字元

}//輸出個數統計值

printf("數字個數:%d\n小寫字母個數:%d\n大寫字母個數:%d\n",num_count, littlealp_count, bigalp_count);

printf("空格個數:%d\n其他字元個數:%d\n", emp_count, els_count);

return 0;

}程式執行結果如下:

擴充套件資料:

其他實現方法:

#include

#include //對空白字元的判斷,呼叫了isspace()函式,所以要呼叫標頭檔案

int main()

else if(isspace(*p))    //用isspace函式來判斷是不是空白字元

else

p++;

return 0;}

15樓:匿名使用者

//輸入一行字元,分別統計出其中字母、空格、數字和其他字元的個數。

#include

int main(void)

printf("字母=%d\n數字=%d\n空格=%d\n其他字元=%d\n",a,b,c,d);

return 0;}

16樓:匿名使用者

#include #include

#include

#include

using namespace std;

int main()

map::iterator iter;

for (iter = m_count.begin(); iter != m_count.end();++iter)

return 0;}

求助:用c語言程式設計 統計輸入的一個字串中每個字母出現的次數

17樓:匿名使用者

答案在北郵出版社郭浩志版c語言程式設計第131頁的例7.23,程式太長了手機打不完啊!主要是根據str[i]-'a'和str[i]-'a'+26統記個數,將其按順序存入陣列c中計數。

18樓:匿名使用者

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

main()

dc++;}

else

i++;

}for(i=0;i<26;i++)

if(zm[i]>0)

printf("\n%c出現了%d次\t",i+'a',zm[i]);

printf("\n共有單詞%d個\n",dc);

system("pause");}

c語言題目陣列部分輸入一行字元統計其中大

include stdio h void counter char int n,i char array 100 printf enterastring gets array counter array return0 void counter char p int i,n,numuppercase...

C語言輸入字串,統計各字母出現的次數,輸出出現了4次的所有字母。英文字母區分大小寫

include include include void init int cascii 52 2 初始化陣列 int main 97 122對應大寫字母a z asc 97 for i 52 i char c 26 i gets st s st while s for i 0 i 26 i if ...

c語言關於字串輸入的問題,一個C語言字串輸入問題

有明顯的致命錯誤 c語言字串輸入時,不要加地址符號 因為陣列名就表示地址。for int i 0 i 2 i 另外再加個標頭檔案 include c語言中比較兩個字串是否相等,不能直接比較if stu j name nm 應改成if strcmp stu j name,nm 0 if stu j n...