用c語言編寫輸入符串,統計字串中各個字母出現的次數 區分大小寫

2021-05-11 17:04:45 字數 6739 閱讀 8846

1樓:匿名使用者

#include "stdio.h"

#define n 100

int main() ,down[26]=;

for(i=0;i!=0;i++)

}printf("the result is as follows:\n");

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

return 0;}

2樓:匿名使用者

#include

void main()

for ( i=0;i<256;i++ ) if ( a[i] ) printf("字元%c出現次數%d\n",i,a[i]);}

3樓:聽不清啊

#include

int main()

;char ch;

dowhile(ch!='\n');

for(ch='a';ch<='z';ch++)if(a[ch])cout<

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

4樓:凌亂心扉

#include

#include

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

}int main(void)

5樓:匿名使用者

一、演算法分析:

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

然後輸入字串。

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

輸出結果。

二、參考**:

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

6樓:匿名使用者

邏輯錯了,按照你輸入的字串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語言程式設計:統計字串中各字母出現的次數

7樓:匿名使用者

#include

#include

int main(void)

;int i;

char c;

while ((c=getchar())!='\n')if (isalpha(c)) a[tolower(c)-'a']++;

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

8樓:匿名使用者

這個程式不錯就用這個吧

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

9樓:自我程式設計

#include

#include

#include

void init(int cascii[52][2]);//初始化陣列

int main()

//97~122對應大寫字母a~z

asc=97;

for(;i<52;i++)}

10樓:岔路程式緣

char()

,c[26]=,i;

gets(st);

s=st;

while(*s)

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

if(c[i]==4)printf("%c\n",a+i);

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

if(c[i]==4)printf("%c\n",a+i);}有什麼問題

請留言。

c語言程式設計:從鍵盤輸入一串字元(長度不超過80),統計出各字母出現的次數(不區分大小寫)。

11樓:匿名使用者

#include

#define max 100

void detect(char s)

;/*記錄每個字元出現的次數*/

int i,j,n=0;

for(i=0;s[i]!='\0';i++)}for(i=0;i

}main()

12樓:哀傷落葉

上面的差不多 我完善下

char string[80] = "";//儲存輸入的字串

int count[25]; //儲存每個字母出現次數

for(int i=0; i<25;i++)count[i] = 0;

//初始化下,因為可能有的字母沒出現過,其實有個簡單的初始化方法不記得了就只能這樣了

cin<

for(int j=0;j

13樓:匿名使用者

思路可以,就這麼寫啊

不用轉化,大概可以這樣

for(int i=0;i……………………case z:

case z:

……………………}}

最後結果在count[0~25]陣列裡

14樓:

你的思路就可以的阿。。。。

c語言 ** 輸入一個字串,統計其中英文字母出現的個數(不區分大小寫)。

15樓:聽不清啊

#include

int main()

;char c;

dowhile(c!='\n');

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

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

printf("\n");

return 0;}

c語言任意輸入一個字串,統計每個小寫字母出現的次數並輸出

16樓:凌亂心扉

#include

#include

#define m 100005

int main()

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

printf("%c:%d\n",a,b);

printf("\n");

}return 0;

}while迴圈的格式:while(表示式)

while迴圈的執行順序:當表示式為真,則執行下面的語句,語句執行完之後再判斷表示式是否為真,如果為真,再次執行下面的語句,然後再判斷表示式是否為真……就這樣一直迴圈下去,直到表示式為假,跳出迴圈。

while語句若一直滿足條件,則會不斷的重複下去。但有時,需要停止迴圈,則可以用下面的三種方式:

一、在while語句中設定條件語句,條件不滿足,則迴圈自動停止。

如:只輸出3的倍數的迴圈;可以設定範圍為:0到20。

二、在迴圈結構中加入流程控制語句,可以使使用者退出迴圈。

1、break流程控制:強制中斷該執行區內的語句,跳出該執行區,繼續執行區域外的語句。

2、continue流程控制:也是中斷迴圈內的執行操作,並且從頭開始執行。

三、利用標識來控制while語句的結束時間。

17樓:聽不清啊

#include

int main()

;gets(s);

for(i=0;s[i];i++)

if(s[i]>='a'&&s[i]<='z')ia[s[i]-'a']++;

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

if(a[i])printf("%c:%d\n",'a'+i,a[i]);

return 0;}

18樓:丿艾瑞灬莉婭

int *lettercount(const char *s)

return num;}

c語言程式設計:輸入一串英文字母,統計每個字母(不區分大小寫)出現的次數

19樓:匿名使用者

#include

#include

using namespace std;

int main()

else

break;

}cout<<"字串的數量為:"

20樓: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語言編寫一個程式,輸入一個字串,統計其中各個字元出現的次數

21樓:一個青年

源程式**如下:

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

22樓:匿名使用者

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

#include

int main(void)

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

return 0;}

23樓:匿名使用者

#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語言編寫 編寫函式,由實參傳來字串,統計此字元

不用全域性變數 include int main void tongji char s printf 其中大寫字母有 d個,小寫字母有 d個 n空格有 d個,數字有 d個,其他字元有 d個 n d,x,k,z,q 用全域性變數 include int d 0,x 0,k 0,z 0,q 0 void...

用c語言寫字串逆序輸出,用C語言寫 字串逆序輸出

逆序輸出有很多種,具體的實現方法取決於你題目的要求 1.如果只是要求逆序輸出,那麼可以採用類似的方法 void reverse char s 這種方法在s很長的情況下會一直遞迴到底,不是很好。2.如果需要將字串整個逆序在函式外面輸出,那麼可能希望採用返回字串指標的方式 實現如下 char rever...

c語言試題編寫程式求任意輸入字串的

include include int main char str 100 int i printf 請輸入一個字串 n while scanf s str eof 輸入一個或多個ctrl z 後結束 printf 該字串 s acs碼值 為 n str for i 0 i 額,執行內截圖一 容並給...