c语言编写一段去除字符数组中重复的字符的程序 用C语言编写程序,将字符数组中的指定字符替换为另一个字符。

\u7528c\u8bed\u8a00\u7f16\u5199\u4e00\u4e2a\u7a0b\u5e8f\uff1a\u5220\u9664\u6570\u7ec4\u4e2d\u91cd\u590d\u7684\u6570\u3002

\u5982\u679c\u4f60\u53ea\u662f\u5220\u6389\u4e3ak\u7684\u503c\uff0c\u7136\u540e\u8f93\u5165\u7684\u8bdd\uff0c\u53ea\u8981\u4e00\u4e2afor\u5faa\u73af\u5c31\u591f\u4e86\uff0c\u628a\u4e0d\u7b49\u4e8ek\u7684\u503c\u76f4\u63a5\u8f93\u51fa\u5c31\u884c\uff0c\u4e0d\u7528\u518d\u5b58\u5165\u6570\u7ec4\u91cc\u4e86\uff0c\u5982\uff1a
#include
void
main()
{
int
n,k,x[100000];
int
i,flag=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&x[i]);
scanf("%d",&k);
for(i=0;i<n;i++)
if(x[i]!=k)
{
if(flag==0)
//(\u8ba9\u7b2c\u4e00\u4e2a\u8f93\u51fa\u524d\u4e0d\u52a0\u7a7a\u683c)
{
printf("%d",x[i]);
flag=1;
}
else
printf("
%d",x[i]);
}
printf("\n");
}

1\u3001\u6253\u5f00visual C++ 6.0-\u6587\u4ef6-\u65b0\u5efa-\u6587\u4ef6-C++ Source File\u3002

2\u3001\u5b9a\u4e49\u53d8\u91cf\uff1a#include void main(){ char c1,c2,c3; /*\u5b9a\u4e49\u5b57\u7b26\u53d8\u91cf*/\u3002

3\u3001\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\uff1aprintf("\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\uff0c\u4f7f\u7528getche\u51fd\u6570\u63a5\u6536\n"); /*\u63d0\u793a\u7528\u6237\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26*/c1=getche(); /*\u4f7f\u7528getche()\u51fd\u6570\u63a5\u6536*\uff0c printf("\n"); /*\u8f93\u51fa\u4e00\u884c\u7a7a\u884c*/\u3002

4\u3001\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\uff1a printf("\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\uff0c\u4f7f\u7528getch\u51fd\u6570\u63a5\u6536\n"); /*\u63d0\u793a\u7528\u6237\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26*/\uff0cc2=getch(); /*\u4f7f\u7528getch()\u51fd\u6570\u63a5\u6536*/\uff0c printf("\n"); /*\u8f93\u51fa\u4e00\u884c\u7a7a\u884c*/\u3002

5\u3001\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\u3002

6\u3001\u8f93\u51fa\u7ed3\u679c\u6700\u540e\u7684\u7ed3\u679c\u3002

判断,标志输入的字符是否重复的,如下代码:

#include <stdio.h>
#include <vector>
struct detail
{
char c;
int exist;//标志位
};
std::vector<detail> statics;
int check(char c)
{
std::vector<detail>::iterator ite = statics.begin();
for (; ite != statics.end(); ite++)
{
if((*ite).c==c)return 0;//输入的字符已经存在
}
return 1;//输入的字符未存在
};
void main()
{
printf("请输入字符串:");
char c;
scanf("%c",&c);
while((int)c!=10)//获取用户输入
{
detail temp;
temp.c = c;
temp.exist = check(c);
statics.push_back(temp);
scanf("%c",&c);
}
std::vector<detail>::iterator ite = statics.begin();//打印非重复的字符
for (; ite != statics.end(); ite++)
{
if((*ite).exist)printf("%c",(*ite).c);
}
printf("\n");
}

帮你改好了,有几个小错误,第一个定义一个字符数组最好后面加上一个\0,内嵌套的for循环后面多了一个分号
#include<stdio.h>
void main()
{
int i,j,p,q;
char a[9]={'a','b','b','c','d','a','v','b','\0'};
for(i=0;i<8;i++)
{
for(j=i+1;j<=8;j++)
if(a[i]==a[j])
{
do
{a[j]=a[j+1];j++;}
while(j<=8);
}
}
puts(a);
}

感觉你没有理清思路
你可以在定义一个数组b[8],然后把数组a中的字符一次放入b中,如果有重复则不放入
下面是代码,devc++上运行通过
#include<stdio.h>
main()
{
int i,j,n,flag;
char a[8]={'a','b','b','c','d','a','v','b'};
char b[8];
b[0]=a[0];

n=1;
for(i=1;i<8;i++)
{
flag=0;
for(j=0;j<n;j++)
if(b[j]==a[i]) {flag=1;break;}
if(flag==0){b[n]=a[i];n++;}
}
b[n]='\n';
puts(b);
getchar();
}

算了,不给你改了,我给你写一个吧
#include<iostream>
using namespace std;
int main()
{
char ch[9]={'a','b','b','c','d','a','v','b'};
int i,j;
int count = 0;
for (i = 0; i < 9;i ++)//不要忘了最后还有个'\0'
{
for (j = i+1;j<9;j++)
{
if(ch[i]==NULL)
{
continue;
}
if (ch[i]==ch[j])//有相同的元素的话,将其替换为后面的非空字符,并将最后一个非空字符置空
{
ch[j] = ch[8-count];
ch[8-count] = NULL;
j--;
count++;
}
}

}
ch[9-count] = '\0';
for (i=0;i<8-count;i++)
{
cout<<ch[i];
}
system("pause");
}

#include<stdio.h>
void main()
{
int i,j,m=0;//m记录重复的字符数
char a[8]={'a','b','b','c','d','a','v','b'};
for(i=0;i<8;i++)
{
for(j=i+1;j<7;j++)//多了一个分号
{
if(a[i]==a[j])//应该是==
{
++m;
for(int k=0;k<7;++k)
{
a[k]=a[k+1];
}
}
}
}
a[8-m]='\0';
puts(a);
}

  • 璇烽珮鎵鐢–璇█缂栧啓涓涓鏁扮粍涓幓鎺閲嶅鏁板瓧鍚庢寜椤哄簭杈撳嚭鐨勭▼搴,鏈绠鍗...
    绛旓細include<stdio.h> void main(){ int a[10],b[10];int i,j,k,n,m = 0,flag;printf("please input 10 nuber\n");for(i = 0; i < 10; i++)scanf("%d",&a[i]);for(i = 0; i < 10; i++){ flag = 1;for(j = 1; j <= m; j++)if(a[i] == b[j]){ flag...
  • c璇█鎺掑簭鍚庡垹闄鏁扮粍涓閲嶅鐨勬暟瀛楀啀鎺掑簭杈撳嚭
    绛旓細include<string.h> defineSIZE81 voiddelete_repeat(char*str);voidbubble_sort(char*str);intmain(){ charstr[SIZE];gets(str);delete_repeat(str);bubble_sort(str);puts(str);return0;} //鍒犻櫎閲嶅瀛楃 voiddelete_repeat(char*str){ /**鍒ゆ柇鏁扮粍鍐呯i涓瓧绗︽槸鍚︿笌鍓峣-1涓瓧绗﹀瓨鍦ㄩ噸澶嶏細...
  • C璇█涓,濡備綍鐢ㄥ垹闄ゆ硶鍒犻櫎鏁扮粍涓鐩稿悓鐨勬暟瀛
    绛旓細include<stdio.h> intdel_same(intdate[],intn);intdel_same(intdate[],intn){ inti,j,k=0;for(i=0;i<n;++i)//i鐢ㄦ潵閬嶅巻鏁扮粍 { for(j=i+1;j<n&&date[i]-date[j];++j);if(!(j-n))//娌℃湁閲嶅鍏冪礌 date[k++]=date[i];//鍙皢date[]鐪嬩綔涓や釜鏁扮粍 } returnk;//杩斿洖...
  • C璇█,鍒犻櫎鏁扮粍涓鐨勯噸澶嶆暟瀛楃劧鍚庤緭鍑
    绛旓細include "stdio.h"include "string.h"void main(){ int i,k=1,j=10,a[10]={4,4,4,4,5,4,9,9,9,10};for(k=i=1;i<10;i++){ for(j=0;j<k;j++){ if(a[j]==a[i]) break;} if(j==k) a[k++]=a[i];} printf(" \n ");for(i=0;i<k;i++){ pr...
  • c璇█:鍒犲幓涓缁鏁扮粍涓鎵鏈夌浉鍚岀殑鏁, 浣夸箣鍙墿涓涓.姹備竴瀹屾暣姝g‘绋嬪簭
    绛旓細include<stdio.h>int fun(int a[],int n){ int i,j=0; for(i=1;i<n;i++) { if(a[j]!=a[i]) a[++j]=a[i]; } return j;}void main(){ int a[]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}; int len,i; len=fun(...
  • C璇█銆傚垹鍘讳竴缁鏁扮粍涓鎵鏈夌浉鍚岀殑鏁,浣夸箣鍙墿涓涓傜▼搴忓涓嬫眰鏀归敊...
    绛旓細/* 璇缂栧啓鍑芥暟fun,鍑芥暟鐨勫姛鑳芥槸:鍒犲幓涓缁鏁扮粍涓鎵鏈夌浉鍚岀殑鏁,浣夸箣鍙墿涓涓傛暟缁勪腑鐨勬暟宸叉寜鐢卞皬鍒板ぇ 鐨勯『搴忔帓鍒,鍑芥暟杩斿洖鍒犻櫎鍚庢暟缁勪腑鏁版嵁鐨勪釜鏁般 渚嬪,涓缁存暟缁勪腑鐨勬暟鎹槸: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10銆傚垹闄ゅ悗鏁扮粍涓殑鍐呭... 灞曞紑 mooncake...
  • c璇█璺眰:涓閬撻鐩鍘婚櫎鏁扮粍涓鍏冪礌
    绛旓細include <stdio.h>int main(){int i,x,n; bool a[100001]={0}; scanf("%d",&n); for(i=0;i<n;i++) {scanf("%d",&x); if(!a[x]) {a[x]=1; printf("%d ",x); } } printf("\n"); return 0; } ...
  • C璇█ 娓呴櫎瀛楃鏁扮粍涓鐨勬寚瀹氬瓧绗 #include<stdio.h> intmain(){ char...
    绛旓細s[k++] 鏄厛璧嬪硷紝 k鍐嶈嚜鍔犮傜瓑鏁堜簬 for(j=k=0; s[j]!='\0'; j++) if(s[j]!=c) { s[k]=s[j]; k++; }涔熷氨鏄 瀵逛簬涓嶇瓑浜巆鐨瀛楃锛 鎶婂畠澶嶅埗鍒板墠闈㈡潵銆 瑕嗙洊鎺夊師鏈殑銆傝繖鏍峰氨璧峰埌浜鍘婚櫎绛変簬c鐨勭洰鐨勩
  • C璇█ 宸茬煡涓涓暣鍨嬫暟缁勭殑鏁版寜浠庡皬鍒板ぇ鎺掑垪,鍘婚櫎鏁扮粍涓鐨勯噸澶嶆暟 骞惰緭鍑...
    绛旓細绠楁硶閿欒銆備笅鏍囪秺鐣屻佹湁涓変釜鍙婁互涓婅繛缁緭閲嶅鏃舵棤娉曞彧淇濈暀涓涓紝闂澶浜嗐俧or寰幆鐨勬嫭鍙峰寘鎷寖鍥翠笉姝g‘锛宖or璇彞鐨勯敊璇棦鍖呮嫭绠楁硶閿欒锛屼篃鍖呮嫭鏍煎紡閿欒銆傛渶鍚庤緭鍑鸿鍙ヤ篃涓嶅銆傝繖涓▼搴忓熀鏈笂鍏ㄩ敊浜嗐俰nclude <stdio.h>int main(){int a[10];int i,j,n=10;//澧炲姞鍙橀噺nfor(i=0;i<10;i++)...
  • 鐢–璇█缂栧啓浠瀛楃鏁扮粍S涓垹闄ゅ瓨鏀惧湪鏁扮粍C涓鐨勫瓧绗︾殑绋嬪簭,鎬,鍦ㄧ嚎绛...
    绛旓細{ int slength= strlen(s);int clength= strlen(c);int* target = (int *)malloc(slength*sizeof(int));for(int i=0;i<slength;i++){ target[i]=0;} for(i=0;i<slength;i++)for(int j=0;j<clength;j++){ if(s[i]==c[j])target[i]=1;} for(i=0;i<slength;i+...
  • 扩展阅读:c语言字符二维数组 ... 怎么输出字符串数组 ... 打印字符数组c语言 ... c++ 多个字符串如何定义 ... 字符数组赋值注意事项 ... 一维字符数组的初始化 ... 字符数组的输入 ... 字符串数组输出格式 ... 7-1 删除字符串中指定字母 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网