有  字符串 A 、 字符串 B ,假如 B 中 和 A 中 有相同的部分,大家知道 
如果 直接 A+B,那么 A,B 中相同的部分 在 新的结果中 有 两个相同的子串,我想只保留一个子串,去掉一个子串,请问该如何处理谢谢

解决方案 »

  1.   

    你的意思是不是:
    假如A='abc';B='bcd';
    你想要A+B='abcd';
      

  2.   

    for each char in string A {
       if (char in string B) {   } 
    }
      

  3.   

    sorry !!for each char in string A {
       if (char in string B) {
         delete char from A;
       } 
    }
      

  4.   

    我说的是  martingod() 所理解  的   意思
     Zhymax(蓝点) ( ) : 我想这个应该 完成不了的,是相同字符串,而不是字符
      

  5.   

    //可直接用_learch实现
    #include <stdlib.h>
    #include <stdio.h>
    #include <search.h>
    #include <string.h>
    /* initialize number of colors */
    #define NELEMS(arr) (sizeof(arr) / sizeof(arr[0]))char  A[100];
    char   B[10] ;int nums ;int numeric (const int *p1, const int *p2)
    {
        return(*p1 - *p2);
    }
    int addelem(int *key)
    {
     
       int oldn = nums;
       _lsearch(key, A,(size_t *)&nums , sizeof(int),
         (int(*)(const void *,const void *))numeric);
       return(nums == oldn);}int main(void)
    {
       int i;
       int key ;   strcpy((char *)A,"abcdef");
       strcpy((char *)B,"abcgh");
       nums=strlen(A);
       for(i=0;i<strlen(B);i++)
        {
         key=B[i];
         if (addelem(&key))
          printf("%c already in A table\n", key);
          else
         {
          printf("%c added to A  table\n", key);
         }
       }
       A[nums]=0;
       printf("The A:\n");
       printf("%s\n",A);
       return 0;
    }
      

  6.   

    上面有点问题:改
    int numeric (const char *p1, const char *p2)
    {
        return(*p1 - *p2);
    }
    int addelem(int *key)
    {
     
       int oldn = nums;
       _lsearch(key, A,(size_t *)&nums , sizeof(char),
         (int(*)(const void *,const void *))numeric);
       return(nums == oldn);}
    //OK
      

  7.   

    假定a b不是空串,就是从a的末尾和b的开始扫描相同的最大字符串char* aa=a+strlen(a)-1;
    char* bb=b;while(  aa!=a  &&  *bb != NULL  && *aa == *bb )  {aa--; bb++;}
    strcpy( a+strlen(a), b );
      

  8.   

    楼上的有问题,试试
    a="abctuj";
    b="bcdj";
    结果为:abctujbcdj
    正确的结果为:abctujd
    其实,C/C++有很多标准函数,特别是字串或数据处理功能,用它就可以了