c语言删除重复字符函数 c语言中删除重复字符

C语言编写一个函数,将字符串中连续重复出现的字符去除C语言自定义函数 , 一次性去除连续重复字符,参考代码如下:
#includestdio.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语言中的指针编写一个删除字符串中重复字符的函数#includestdio.h
void fun(char *str) { char *p; int f[256],i;
for ( i=0;i256;i++ ) f[i]=0;
p=str;
while ( *p ) {
if ( f[*p]==0 ) { *str=*p; str++; }
f[*p]++;
p++;
}
*str=0;
}
void main() { char str[256];
gets(str); fun(str); printf("%s\n",str);
}
纠错:C语言:删除重复字符 。没注释, 还不如重新写一个
#include stdio.h
#include stdlib.h
int main()
{
char Letter[80];//用于接收输入字符串
int result[128]={0};//相当于一张空的ASCII码表
gets(Letter);
int size=strlen(Letter);
int i,j=0;
for(i=0;isize;i++)//该循环好比
{//字符串中的每个字符在空ASCII码表中打勾
result[Letter[i]]=1;
}
memset(Letter,'\0',80);//重置为空字符串
for(i=0;i128;i++)//检索ASCII码表,逐个写入字符数组中
{
if(result[i]==1)//只要ASCII码表中打了勾的字符,就写入数组
{
Letter[j++]=i;
}
}
printf("\n%s",Letter);
return 0;
}
C语言中删除字符串中的重复字符,然后输出新的字符串#include stdio.h
#include string.h
int main()
{
char c,str[80];
int i=0,j,k,len;
printf("input:");
gets(str);
len=strlen(str);
c=str[i];
while(c!='\0')
{
for(j=i+1;str[j]!='\0';j++)
{
if(str[j]==c)
{
for(k=j;str[k]!='\0';k++)
str[k]=str[k+1];
len--;
}
}
c=str[i++];
}
puts(str);
getchar();
}
改动后可以运行了c语言删除重复字符函数,你c语言删除重复字符函数的错误:
1.包含的第二个头文件少写个h
2.在发现重复字符后需要删除时 , if语句里for循环使用了j和外面大循环的j重复,会造成不可预料的错误
3.else后面的赋值不正确,应该等第一个for循环结束后,而不是if判断后
如何去除重复字符c语言#includestdio.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; in; i++)
{
【c语言删除重复字符函数 c语言中删除重复字符】for (j = k = i + 1; jn; j++)
if (s[j] != s[i])
s[k++] = s[j];
s[k] = '\0';
}
printf("去掉重复字符后结果为:\n");
puts(s);
}
关于c语言删除重复字符函数和c语言中删除重复字符的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读