C++中如何将大字符串中相同的小字符串删除 如abc adc abc jhn bsj 则删除一个abc 最好能给方法和例题

是不是要用到什么算法? 求大神指点


#include <stdio.h>

#include <string.h>


int main(void)

{

    char *b = "abc adc abc jhn bsj";

    char a[100][20] = {'\0'};

    int i, j, k;

    for (i=0,j=0,k=0; b[i]!='\0'; i++)//此循环可以把“大字符串”分割开存放

    {

        if(b[i] != ' ')

        {

            a[j][k] = b[i];

            k++;

        }

        else

        {

            j++;

            k=0;

        }

    }

    for (i=0; i<=j; i++)

    {

        for (k=i+1; k<=j; k++)

            if (strcmp(a[i], a[k]) == 0)//等于0则说明两字符串相同

            {

                a[i][0] = '\0';//“删除重复的字符串”,把字符串的首字符置为空字符

                i++;

            }

        if(a[i][0] != '\0')

            printf("%s ", a[i]);

    }

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-05
有一个专用函数的,你可以自己去查。如果用的比较频繁的话,可以自己写一个函数。
相似回答
大家正在搜