C語言,輸入字串,輸出字串中一共有多少個重複的字元

時間 2021-09-11 22:33:38

1樓:匿名使用者

統計字串中的重複字元,可以通過簡單雜湊演算法來實現。

有效的字元的ascii值在0-127之間,定義一個128位的陣列,初始化為0,用陣列下標對應相應的字元,陣列元素值表示字元出現的頻率,統計相應字元的個數,個數大於1的字元就是重複的。

#include

void main()

;int i;

printf("input a string: ");

gets(s);

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

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

if ( carr[i] > 1 )

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

}執行結果:

input a string: hello worldl:3o:2

2樓:匿名使用者

#include "stdio.h"

#include "string.h"

//獲得重複總字元個數

int getrepeatchars(char * pstr)}}return irepeat;

}void main()

3樓:寒寒家

建立一個包含26個元素的整形陣列a,全部初始化為-1,每個元素代表一個英文字母,而後從頭到尾讀字串,比如讀到『a'就在a[0]的位置上加1. 最後求得陣列所有非負元素之和,就是所求了 呵呵

4樓:

用陣列存(可以用int num[26]),從頭到尾讀,然後在相應的位置加一就行了。

c語言輸入一個字串,把字串中相同的字元全部除去,然後輸出縮短的字串。

5樓:匿名使用者

#include

#include

int delete(char a,int n)return 1;

}void main()

}a[n]='\0';

printf("刪除相同字元後的字串為:\n");

printf("%s\n",a);

}你試一試這個看看

c語言:輸入一串字元,再輸入一個字元,統計該字元在字串**現的次數,並輸出該字串

6樓:水舞江流

你的程式有許多錯誤,主要有:

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

2、不能既有a[j]=getchar()又有scanf("%c",&a[j]),這樣會導致一個字元被另一個覆蓋,陣列不能儲存所有的字元。

3、scanf("%c\n",&m);應寫為scanf("%c",&m);,\n只應出現在printf語句中。

按照你的思路,我把**修改了一下,如下。你可以試試看行不行。

#include

main()

a[j]='\0';

printf("enter a word:");

scanf("%c",&m);

for(j=0;a[j]!='\0';j++)

if(a[j]==m)

count++;

printf("the number is %d\n",count);

return 0;}

7樓:

#include

int main()

a[j]='\0';

printf("enter a word:");

scanf("%c",&m);/*這裡不需要來個\n,不然你輸入的時候也得敲進去\n*/

for(j=0;a[j]!='\0';j++)if(a[j]==m)

count++;

printf("the number is %d\n",count);

return 0;}

8樓:匿名使用者

int count=0,j;

char a[80];

char m;

gets(a);

fflush(stdin);

m=getchar();

for(j=0;a[j];j++)

if(a[j]==m);

count++;

printf("the number is %d\n",count);

c語言程式設計:輸入一個字元和字串,刪除字串中和輸入字元相同的所有字元,輸出處理後的字串。

9樓:匿名使用者

#include

#include

#define len 100

void delete_same(char * str,char ch)

i--;}}

void main()

10樓:

給一個很簡單的代專

碼:#include

#include

void main()

11樓:匿名使用者

#include

main()

char clear(char a ,char b)

c語言找出最長的字串。輸入5個字串,輸入其中最長的字串。

12樓:問明

#include

#include

int main()

, max[80] = ;

printf("輸入五個字串:\n");

scanf("%s",s);

strcpy(max,s);

for(i=1; i<5; i++)

printf("最大的字串是:%s \n",max);

return 0;}

13樓:匿名使用者

#include

#include

int main(void)

}printf("  輸入的 5 個字串中最長的字串是:%s\n",str[j]);

return 0;}

14樓:聽不清啊

應該是:

if(k[i]>max) //不是k(i)

15樓:匿名使用者

第17行k(i)應改為k[i]

c語言中用scanf連續輸入多個字串的資料會重複為什麼

16樓:匿名使用者

問題出在以下定義:

char name[6];

char number[18];

char phone[11];

char year[4];

char month[2];

char day[2];

字元陣列name只能儲存長度為5的字串,因為結尾還有一個\0,而你的輸入已經越界了,後面輸入的內容將前面的\0覆蓋,導致字串輸出異常,其他5個情況類似。

c 怎麼輸入字串,C語言輸入輸出字串

c 中常見的幾種輸入字串的方法如下 cin 狹義 通過閱讀 聽講 研究 觀察 理解 探索 實驗 實踐等手段獲得知識或技能的過程,是一種使個體可以得到持續變化 知識和技能,方法與過程,情感與價值的改善和昇華 的行為方式。例如通過學校教育獲得知識的過程。廣義 是人在生活過程中,通過獲得經驗而產生的行為...

c語言char輸出字串是亂碼,C語言,字串輸出是亂碼

重點是creatlist這個函式,datac必須是malloc分配出來的記憶體,不然就會出問題.應該是這樣的 p pdata malloc 256 scanf s p pdata 傑大哥哈哈哈 asadrcvs5 2 f amng bkuqte lzlr kxojfrc eqsauzx 夫婿久離別,...

c語言輸入字串,個讀入字元,再輸出

大哥哥啊,0 是不可輸入字元呀,你可以改成別的asscii碼,比如 n 還有啦,看看你for後面的分號,編譯執行下小弟給的 include intmain 合乎要求吧,不過你想把回車也讀進去,就用eof,記得用ctrl c結束哦 第一個錯誤 for後面的分號 第二個錯誤 在為string i 賦值前...