C语言怎么编写:请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。

作者&投稿:潘詹 (若有异议请与网页底部的电邮联系)
请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。输出按字母顺序~

#include #include #include void stringFilter(const char *p_str, long len, char *p_outstr) { int count[26]={0}; //计数器 char tmp; int j=0; for(int i=0;i<len;i++) { tmp = p_str[i]-'a'; if(count[tmp]==0) { count[tmp]++; p_outstr[j++] = p_str[i]; } } p_outstr[j] = '\0'; } void main() { char *str = "aaaaaabb"; int len = 9; char * outstr = (char *)malloc(len*sizeof(char)); //分配内存 stringFilter(str,len,outstr); printf("%s",outstr); free(outstr); outstr = NULL; system("pause"); }

坚持每天编程没,或是每周至少编些程序没?如果没有,那就不是C++难不难的问题了。

结果出来了,你看看吧,满意请采纳

#include <stdio.h>
#include <string.h>
void finddd(char x[]);

int main()
{
    char a[150];
    char *aa;
    int a1;
    int i;

        printf("请输入任意的字符串: ");
        gets(a);
        finddd(a);
    return 0;
}

void finddd(char x[])       // 不带数据返回 
{
int  i,shu=0;
char aa[100];               
int  aaa[200]={0};

for(i=0;i<strlen(x);i++)
{
     if(aaa[ x[i] ] == 0)
     {
aaa[ x[i] ] = 1;
         aa[shu++]=x[i];
     }
}
   aa[shu++]='\0';

   printf("剔除重复字符后的字符串: %s
",aa);
}


main()
{
char x[100],y[100];
void stringFilter(const char*pInputStr, long lInputLen, char *pOutputStr);
gets(x);
stringFilter(x,strlen(x),y);
puts(y);
}
//算法说明:将源字符串中每一个字符取出来,到目标字符串中查找存不存在,如果已经存在,则跳过,否则,复制到目标字符串最后一个字符的后面。
void stringFilter(const char*pInputStr, long lInputLen, char *pOutputStr)
{
long i,j,n;
for(i=0;i<100;i++)pOutputStr[i]=0;//将pOutputStr字符串各元素清0
for(i=0;i<lInputLen;i++)
{
n=strlen(pOutputStr);//求pOutputStr字符串长度
for(j=0;j<n;j++)
if(pOutputStr[j]==pInputStr[i])break;//如果从pInputStr字符串中取出的第i个字符在pOutputStr字符串中已经存在
if(pOutputStr[j]==0)pOutputStr[j]=pInputStr[i];
}
}

void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)
{
int i, j, k;

i = 0;
j = 0;
k = 1;
*pOutputStr = *pInputStr;
while (pInputStr[i])
{
for (j = 0; j < k; ++ j)
{
if (*(pOutputStr + j) == *(pInputStr + i))
{
break;
}
}
if (j == k)
{
*(pOutputStr + k) = *(pInputStr + i);
++ k;
}
++ i;
}
*(pOutputStr + k) = 0;
}



(c语言)请编写一个程序,要求在屏幕上显示两行文字: l am a student...
include<stdio.h> int main(void){ printf("I am a student\\n");printf("I love China\\n");return 0;}

c语言 请编写程序让用户输入凸五边形的五个顶点坐标,计算出该凸五边形的...
\/\/ 求面积.cpp : 定义控制台应用程序的入口点。include "stdafx.h"include <stdio.h> include <math.h> \/ 三角形面积函数,形式参数为float num1[5],float num2[5],返回值为面积之和 \/ double square(float num1[5],float num2[5]){ double side[7],length[3],squ[3];int i;for(...

51单片机汇编语言-请编写程序将内部RAM 40H到4FH 中的16个数据按从小...
冒泡排序程序如下:ORG 0000H LCALL SORT ; 跳转到排序程序 SJMP $ ; 。SORT: ; 数据冒泡排序程序 MOV R6, #16 ;参加排序数据的总个数 DEC R6 ; 比较次数 比 数据总数 少 1 L1:MOV R0, #40H ; 把数据的起始地址40h付给R0 MOV A, R6 ...

C语言求助:请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行...
请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1、仅压缩连续重复出现的字符。比... 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1、仅压缩连续重复出现的...

急求用c语言怎么编写!!!
include <stdio.h> int main(){ int a[6],i,t;for(i=0;i<6;++i)scanf("%d",&a[i]);for(i=1,t=0;i<6;++i)if(a[t]>a[i])t=i;i=a[t];a[t]=a[0];a[0]=i;for(i=2,t=1;i<6;++i)if(a[t]<a[i])t=i;i=a[t];a[t]=a[5];a[5]=i;for(i=0;i...

请编写一个程序完成如下功能:简单C语言
include <stdio.h>int main(void){double a,b;scanf("%lf%lf",&a,&b); \/\/输入2个double数据printf("%.2lf\\n",a-b); \/\/打印结果,保留2为小数return 0;}

C语言请编写函数fun,其功能是:移动字符串中的内容,移动的规则是把第1...
include <stdio.h> include <string.h> define N 80 void fun(char *w, int m);void main(){ char a[N]= "ABCDEFGHIJK";int m;printf("The original string:\\n");puts(a);printf("\\n\\nEnter m: ");scanf_s("%d",&m);fun(a,m);printf("\\nThe string after...

C语言怎么编写开头和结尾?
C语言中,通常以#include<stdio.h>开头,以return 0结束。下面给出具体解释。开头的是预处理指令,不是C语句的一部分,以#开头的语句,在预处理阶段,由预处理器处理,例如:#include <stdio.h>。预处理器会将stdio.h文件的内容加入到当前文件的头部,而#define CONST 10则会将文件中的CONST,用10...

C语言,请编写函数fun(自定义函数),其功能是:将一组得分中,去掉一个最...
temp = 0;for (int i=1;i<n;i++){if (a[temp]>a[i]){temp =i;}}return temp;}void fun() \/\/去掉最高分和最低分的函数{int i,k,f;float a[N],sum = 0,avg = 0 ;printf("请输入10个分数\\n");for(i=0;i<N;i++){scanf("%f",&a[i]);}k = findmax(...

用C语言怎么编写一个从1加到10的程序...新手求解
include <stdio.h> void main(){ int n;int sum=0; \/\/初始sum变量值为0;for(n=1;n<=10;n++){ sum=sum+n; \/\/从一加到10;} printf("1+2+...+10=%d",sum);}

平山区13345352142: 在C语言中怎么输入一个字符串 -
羽郭氟康: 在c语言中存储一个字符串,一般有两种方法,一种是字符指针,一种是使用字符数组.比如: const char *str = "hello"; //使用字符串指针 const char str[] = "hello"; //使用字符数组 如果保存的字符串,需要修改.一般使用字符数组.比如: char path[256] = "c:\\windows\\"; strcat(path, "system32");

平山区13345352142: 用C语言编写一个有关字符串的程序程序 -
羽郭氟康: #include <iostream>#include <fstream>#include <cstring>#include <iomanip> using namespace std; int CountFrequency(const char *Input,const char *Output,double *Frequency){char ch=0; int Set[26],count(0),i=0; memset(Set,0,26*sizeof(int)); ...

平山区13345352142: 怎样利用c语言编写一个程序在一个字符串数组中查找一个指定的字符并输出他第一次 -
羽郭氟康: #include<stdio.h> #include<string>void main() {char a[20],c; //a[20]为字符串,c为要查找字符int i,n[5],num = 0,j = 0; //i,j为计数器,n[5]纪录下标,num记录个数printf("请输入字符串(少于20个字符)\n");gets(a);printf("请输入要查找...

平山区13345352142: 用C语言编写一段关于字符串的程序(最好只用到循环) -
羽郭氟康: 呵呵,楼主是刚开始接触C语言吧,可以这样做: #include <stdio.h> void main(void) {int input[100];int n; //记录输入的数字串的长度int i;int k = 1; //记录每个元素重复的次数 for(n = 0; n < 100; n++){scanf("%d", &input[n]);if(input[n] ==...

平山区13345352142: C语言上中怎么样直接输入输出一个字符串 -
羽郭氟康: C语言中字符串的输入和输出主要有两种方式: 输入使用:scanf("%s",a);对应的输出使用:printf("%s\n",a); 输入使用:gets(b);对应的输出使用:puts(b);字符串或串(String)是由数字、字母、下划线组成的一串字符.一般记为 s=...

平山区13345352142: 如何在C语言中实现输入一个字符串,然后按照指定顺序输出字符字串. -
羽郭氟康: #include<stdio.h> main() { char a[4][10]; scanf("%s %s %s %s",a[0],a[1],a[2],a[3]); printf("%s %s %s %s ",a[0],a[1],a[2],a[3]); }

平山区13345352142: 请教,C语言实现.从键盘上输入一个字符串,编写一个程序完成指定字母的替代. -
羽郭氟康: #include <stdio.h> int main() { char c,cn; char s[100]; char* p=s; printf("输入文本:\n"); gets(s); //输入this is a c program printf("输入需要替换字符和替换成字符,格式: 老字符 空格 新字符:\n"); scanf("%c %c",&c,&cn); // 输入i a for(; *p; p++)if(*p==c) *p=cn; printf("输出字符串为:\n%s\n",s);return 0; }

平山区13345352142: 请编写一个程序,定义三个字符串a、b, -
羽郭氟康: 用C语言,程序如下: #include main() { char a[10],b[10],c[20]; int i=0,j=0,k=0; printf("Please input string a and b"); scanf("%s%s",&a,&b); while(a[i]!='

平山区13345352142: C语言 麻烦帮写个字符串转换的程序 -
羽郭氟康: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17#include <stdio.h> #include <string.h>#define MAX_LEN 100voidstr_convert() {charstr[MAX_LEN+1];scanf("%100s", str);printf("string: %s\nlength: %d", str, strlen(str)); }intmain() {str_convert();return0; }

平山区13345352142: C语言编写字符串连接.谢谢! -
羽郭氟康: int i=0,j; char ch; char str1[100],str2[100]; printf("请输入2个字符串:\n"); scanf("%s %s",str1,str2); printf("合并前str1:%s,str2:%s\n",str1,str2); strcat(str1,str2); while(str1[i]!='\0') { for(j=i;j<strlen(str1);j++) { if(str1[i]>str1[j]) { ch=str1[i]; str1[i]=str1[j]; str1[j]=ch; } } i++; } printf("合并后%s\n",str1);

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网