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 賦值前...