① c語言 刪除字元串中重復的字元
你這不廢話么,你定義的是int
fun()
要求返回值是int型,你不加return肯定不對,不加就沒有返回值,你的函數就不對了
樓上兩位胡扯的
② 如何去除重復字元c語言
#include<stdio.h>
int main(void)
{
char s[100];
int i, j, n, k;
printf("請輸入一串有重復字元的字元串:\n");
gets(s);
for (n = 0; s[n] != '\0'; n++) ;
for (i = 0; i < n; i++)
{
for (j = k = i + 1; j < n; j++)
if (s[j] != s[i])
s[k++] = s[j];
s[k] = '\0';
}
printf("去掉重復字元後結果為:\n");
puts(s);
}
③ c語言,輸入為一些字元串,想要去除重復的字元串然後輸出
#defineN100//定義最多可以測試100個字串
#defineM100//定義每個字串最長100
#defineEND"End!"//定義結束輸入的字串
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intissame(char*p[],char*f,intn){
inti;
for(i=0;i<=n;i++)
if(strcmp(p[i],f)==0)return1;
return0;
}
intmain(void){
char*p[N];
inti=0,total;
intcount=0;
printf("請輸入不多於%d的字元串,以End!為結束 ",N);
while(1){
p[i]=(char*)(malloc(M));//定義每個字串最長為100
printf("第%d個字串:",i+1);
gets(p[i]);
if(strcmp(p[i],END)==0)break;//如果輸入了結束標記則結束輸入
i++;
}
total=i-1;//計算總共輸入了多少字串
printf("以下得出不同的字串 ");
for(i=0;i<=total;i++){
if(issame(p,p[i],i-1)==0){//檢查是否與前面輸入的字元一致
count++;
printf("%d %s ",count,p[i]);
}
}
}
④ C語言 輸入一個字元串 去掉重復的字元,輸出無重復的
統計字元串中的重復字元,可以通過簡單哈希演算法來實現。
有效的字元的ascii值在0-127之間,定義一個128位的數組,初始化為0,用數組下標對應相應的字元,數組元素值表示字元出現的頻率,統計相應字元的個數,個數大於1的字元就是重復的。
參考代碼如下:
#include
void main()
{
char s[1024];
int carr[128]={0};
int i;
printf("input a string: ");
gets(s);
for( i=0;s[i];i++ )
{
int index=s[i];
if ( index >=0 && index <= 127 ) //安全處理,防止輸入異常時,程序出錯
carr[index]++ ;
}
for( i=0;i<128;i++ )
if ( carr[i] > 1 )
printf("%c:%d\n", i, carr[i] );
}運行結果:
input
a
string:
hello
world
l:3
o:2
⑤ c語言刪除字元串中重復的字元,大神求指教!
問題有點多啊。。。首先你的enter[0]根本沒寫進tested[0]中。然後你while中 for循環你是對enter[0]進行遍歷的,並不是對你思路中提到的對tested數組進行遍歷。想要對tested數組進行你想像中的遍歷的話你還差一個指針或者你每添加一個字元進入tested中時,都把最後置成\0
⑥ c語言字元串怎麼去除重復的字元
程序的基本思路是把輸入漏猜的字元串放到a[100]字元組中,然後把a[100]中所有不重復的字元添加到b[100]中,間接完成對字元串中的重復字元的刪除
⑦ C語言中刪除字元串中的重復字元,然後輸出新的字元串
這個容易,就是把指定位置的字元去掉,也就是說後面的字元覆蓋
比如刪除指定的字元在字元串中第一個出現的位置
void
strdel(
char*
str,
char
ch
)
{
char
*p
=
str;
while(
*p
)
{
if(
*p==ch
)
break;
}
if(
*p
)
{
while(
*p
)
{
*p==*(p+1);
p++;
}
}
}
希望能解決您的問題。
⑧ C語言編寫一個函數,將字元串中連續重復出現的字元去除
C語言自定義函數,一次性去除連續重復字元,參考代碼如下:
#include<stdio.h>
char *fun(char *str)
{
int i=1,j=0;
if(str==NULL)
return NULL;
if(str[0]==0)
return str;
while(str[i]!=0)
if(str[j]!=str[i])
str[++j]=str[i++];
else ++i;
str[j+1]=0;
return str;
}
int main()
{
char str[500];
gets(str);
puts(fun(str));
return 0;
}
⑨ c語言中,去掉字元串s中所有重復的字元,只保留從左到右第一次出現的那一個
1、首先在c語言中,寫上注釋內容,如下圖所示。
⑩ 糾錯:C語言:刪除重復字元。
沒注釋, 還不如重新寫一個
#include<stdio.h>
#include<stdlib.h>
intmain()
{
charLetter[80];//用於接收輸入字元串
intresult[128]={0};//相當於一張空的ASCII碼表
gets(Letter);
intsize=strlen(Letter);
inti,j=0;
for(i=0;i<size;i++)//該循環好比
{//字元串中的每個字元在空ASCII碼表中打勾
result[Letter[i]]=1;
}
memset(Letter,'