c語言統計字串中每個字元出現的次數,為什麼輸入的字元不被計算

2021-09-10 01:42:58 字數 6385 閱讀 1425

1樓:馬輪

你的程式有許多錯誤,主要有:1、j沒有初始化為0,直接用作陣列下標是不對的,會導致程式崩潰。而且j沒有+1操作,這樣輸入的字元都會覆蓋到一起。

2、不能既有a[j]=getchar()又有scanf("%c",&a[j]),這樣會導致乙個字元被另乙個覆蓋,陣列不能儲存所有的字元。3、scanf("%c\n",&m);應寫為scanf("%c",&m);,\n只應出現在printf語句中。按照你的思路,我把**修改了一下,如下。

你可以試試看行不行

='\0';j++)if(a[j]==m)count++;printf("thenumberis%d\n",count);return0;}

2樓:

while((c=getchar())!='exit')

{ while((c=getchar())!='\n')你輸入了兩次,第一次的這個並沒有計數

3樓:於言獨上青樓

//這是修改後的**

#include

void main()

else if(c==' ')

else if(c>='0'&&c<='9')else

}/*如果輸入字元是『enter』,結束迴圈,列印各種字元的個數

,digit,others);

}你第乙個字元被這裡的getchar吸收了。while((c=getchar())!='exit')

當然我並沒有看懂你這條語句的作用是幹什麼。所以刪除了。

而且getchar()只有乙個字元,你怎麼和4個字元比較呢?

4樓:匿名使用者

外面那重迴圈幹嘛的,拿掉就好了。你的第乙個字元被外面的循壞得到了啊

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

5樓:凌亂心扉

#include

#include

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

}int main(void)

6樓:匿名使用者

一、演算法分析:

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

然後輸入字串。

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

輸出結果。

二、參考**:

#include

int main()

;//用來統計個數。

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

int i;

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

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

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

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

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

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

return 0;}

7樓:匿名使用者

邏輯錯了,按照你輸入的字串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 cnt[26]

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

自己考慮

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

8樓:乙個青年

源程式**如下:

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

9樓:匿名使用者

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

#include

int main(void)

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

return 0;}

10樓:匿名使用者

#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語言實現,計算字串中子串出現的次數,就是先輸入乙個字串,再輸入乙個上面字串中存在

11樓:朋友想念你

#include

#include

void main()

}else

p1++;

if(*p2 == '\0')

sum++;

p2=str2;

}printf("%d", sum);

getchar();

}希望這個能幫到你。。加油吧少年

請放心使用,有問題的話請追問

滿意請及時採納,謝謝,採納後你將獲得5財富值。

你的採納將是我繼續努力幫助他人的最強動力!

12樓:匿名使用者

你好!給你乙個程式,這個程式可以統計含有空格的字串完整的**:

#include

#include

int find(char * str1, char * str2){ int i,j;

int str1len=strlen(str1),str2len=strlen(str2);

int count=0;

for(i=0;i

13樓:流風

int countsubstr(char *str ,char * substr)

if(isok==1)

}return count;}

14樓:花菇_朵兒

at("子字串")

c語言程式設計:統計字串中各字母出現的次數

15樓:匿名使用者

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

16樓:匿名使用者

這個程式不錯就用這個吧

c語言,輸入乙個字串,計算某字元出現次數

17樓:載瑰瑋愈閒

//輸入一行字元,分來別源統計出其中字母、空格、bai數字和其他字元du

zhi的個數。

dao#include

intmain(void)

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

return0;}

18樓:匿名使用者

修改後:

#include

#include

void main()

19樓:笛子魔童

演算法不錯。就是語法錯誤。scanf("%c",x);這兒scanf("%c",&x);

20樓:竹林_仙客

缺少取位址符:scanf("%c",x)改為scanf("%c",x)

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

21樓:

我寫的:避免

雙重迴圈:

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

22樓:匿名使用者

/*這個是統計給定的字串,如果想統計人為輸入的要加點語句,你自己看吧*/

main()

;int i,j,sum[26];

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

sum[i]=1; /*先初值1*/

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

for(j=i+1;j<=9;j++)

if (arr[i]==arr[j])

sum[i]=sum[i]+1; /*判斷是否有相同的字元*/for(i=0;i<=9;i++)

printf("%c:%d\n",arr[i],sum[i]);/*列印結果*/}

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

23樓:匿名使用者

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

24樓:匿名使用者

#include

void main()

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

c從字串中取某個字元,c 中怎樣擷取兩特定字元之間的字串

string str 111222233334444 random rd new random int index rd.next 0,str.length 1 獲得隨機位置 str str.remove index,1 刪除隨機索引的乙個字元 class program string random...

c語言字串中的空格算不算字元,C語言字串中的空格算不算乙個字元

baic語言規定,字串是用雙引號括 du起來的字串行zhi。由於空dao格也在字串中 在雙引號內 所以空格也算乙個字元。可以通過下面的程式段來驗證空格算不算乙個字元 char a abc efg printf d sizeof a 輸出8,6個字元 1個空格 1個字元結束標誌,sizeof函式是測試...

C語言程式求debug 統計字串在另字串中出現的

第一種 public static map count string str return maps 第二種 public static map count1 string str return map 第三種 public static map count2 string str map.put ...