當前位置:首頁 » 編程語言 » c語言中如何刪除重復字元
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中如何刪除重復字元

發布時間: 2023-05-30 06:24:48

『壹』 求c語言代碼,刪除字元串中重復字元 如輸入"aabbcc",要求輸出"abc"

字元也可以使用整數來表示,其實整數0-255用%c來輸出就是字元。
#include <stdio.h>
int main() {
char s[256]; /*初始化了一個數組來存放輸入的串*/
int i = 0, tmp[256] = {0}; /*tmp是一個256個整型數組,初始化成全0*/
printf("Enter the string :\n");
gets(s); /*將輸入的串存到s中*/

/*分析每個輸入的字元,如果字元是'a' 則a=97,那麼 tmp[97]將置成1 ,如果下一個字元串還是
'a',那麼同樣tmp[97]置成1,如果下一個字元是'b',那麼tmp[98]將置成1......*/
while(s[i] != '\0')
tmp[s[i++]] = 1;

puts("\nAfter sort and delete operation:");
/*順序輸出255個字元中s串中包含的字元*/
for(i = 0; i < 256;i++)
if(tmp[i])
printf("%c", i);
return 0;
}

那麼等於是說全部ascii字元集是256個,如果有哪個字元那麼就把它標記上,然後再從0開始順序輸出就可以了。

『貳』 c語言字元串怎麼去除重復的字元

程序的基本思路是把輸入漏猜的字元串放到a[100]字元組中,然後把a[100]中所有不重復的字元添加到b[100]中,間接完成對字元串中的重復字元的刪除

『叄』 如何去除重復字元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語言中刪除字元串中的重復字元,然後輸出新的字元串

#include<stdio.h>
#include<string.h>
intmain()
{
charc,str[80];
inti=0,j,k,len;
printf("input:");
gets(str);
len=strlen(str);
c=str[i];
while(c!='')
{
for(j=i+1;str[j]!='';j++)
{
if(str[j]==c)
{
for(k=j;str[k]!='';k++)
str[k]=str[k+1];
len--;
}
}
c=str[i++];
}
puts(str);
getchar();
}

改動後可以運行了,你的錯誤:
1.包含的第二個頭文件少寫個h
2.在發現重復字元後需要刪除時,if語句里for循環使用了j和外面大循環的j重復,會造成不可預料的錯誤
3.else後面的賦值不正確,應該等第一個for循環結束後,而不是if判斷後

『伍』 C語言 刪除重復字元

程序的基本思路是把輸入的字元串放到a[100]字元組中,然後把a[100]中所有不重復的字元添加到b[100]中,間接完成對字元串中的重復字元的刪除
#include<stdio.h>
void
main()
{
char
a[100],b[100];
//定義兩個字元組,a[100]用來接收輸入的字元串,b[100]用來存儲不重復的字元
int
pa=0,pb=0,i,flag;
scanf("%s",a);
//輸入字元串到a[100]中,用scanf讀入到a[100]中會自動在a[100]中字元串結束的地方加上'\0'
for(pa=0;a[pa]!='\0';pa++)
//for循環結束的條件是a[pa]==0,也就是從a[100]字元組中讀取一個字元,直到沒有
{
flag=1;
//flag是個爛腔標敗歷毀志符,當flag==1時,說明這個字元(下句中的a[pa])是第一次出現,應該加入到b[100]中
//如果flag==0,說明這個字元(下句中的a[pa])察備重復了,不應該加到b[100]中
for(i=0;i<pb;i++)
if(b[i]==a[pa])
flag=0;
//把a[100]中讀取的字元a[pa]與b[100]中的所有字元進行比較,如果b[i]==a[pa]
//說明這個字元已經在b[100]中了,也就是重復字元了,所有將flag=0,不能加入b[100]中
//如果a[pa]與b[100]中的所有字元都不相等,說明這個字條是第一次出現,應該加到b[100]
if(flag)
{
b[pb]=a[pa];pb++;
}
//如果flag==1,則將a[pa]這個字元加入到b[100]中,然後將pb加1
}
b[pb]='\0';
//當所有的不重復的字元都加入到b[100]中時,將b[100]中字元結束的地方加'\0',也就是b[pb]='\0'
//因為字元串都是民'\0'結尾的,所以加上這句
printf("%s\n",b);
//輸出b[100]中的字元串,也就是刪除過重復字元之後的了
}

『陸』 C語言中去除兩字元串中相同的字元

是從兩個字元串數姿猜中都去除么?

#include "stdio.h"薯型冊皮

void main()
{
char a[80],b[80];
int i,j,k;
gets(a);gets(b);
for(i=0;a[i];i++)
{
for(j=0;b[j];j++)
if(b[j]==a[i])
{
for(k=j;b[k];k++)
b[k]=b[k+1];
}
}
puts(a);puts(b);
}

『柒』 c語言 刪除字元串中重復的字元

你這不廢話么,你定義的是int
fun()
要求返回值是int型,你不加return肯定不對,不加就沒有返回值,你的函數就不對了
樓上兩位胡扯的

『捌』 C語言編寫一個函數,將字元串中連續重復出現的字元去除

展開全部
C語言自定義函數,一次性去除連續重復字元,參考代碼如下:
#include
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語言 在字元串中刪除與某字元相同的字元 急!

#include<stdio.h>
#include<瞎宴蔽stdlib.h>

voidshanchu(char*a,charword);
voidmain(){
char磨州a[80];char祥晌ch;
printf("Inputastring:");
gets(a);
printf("Inputacharacter:");
scanf("%c",&ch);
shanchu(a,ch);
printf("%s ",a);
}
voidshanchu(char*a,charword){
inti,j;
for(i=0;a[i];++i){
if(a[i]==word){
for(j=i;a[j];++j)
a[j]=a[j+1];
}
}
}

『拾』 c語言,刪除字元串中的重復字元。

1)談指纖肯定要加returnj,因為intfun(inta[],intn)函數逗旅完成的功能是把無重復的數放到含仿數組0到j。

2)圖片說明如下: