当前位置:首页 » 编程语言 » 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)图片说明如下: