标题:救助
取消只看楼主
s_k_y
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2008-2-2
结帖率:44.44%
 问题点数:0 回复次数:5 
救助
有两个字符串a和b,比较两个字符串,把b中的不同字符串添加到a的末尾;
    请大家帮帮忙了!!!
搜索更多相关主题的帖子: 救助 
2008-10-01 19:31
s_k_y
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2008-2-2
得分:0 
b中也是字符串
   比如a是acedeax ,b是acelo 比较后合并入b数组应该为acelodx。

 我写的是这样 ,但是有错误。

   #include "string.h"

int main(void)
{

   char a[]="acedeax";
   char b[]="acelo";
   char c[10];
   int i,j,n;
   i=j=n=0;
   while(a[i])
   {
       while(b[j])
       {
          if(a[i]==b[j])
            {

               for(i=0;a[i];i++)
               {    a[i]=a[i+1];

                }
                i=0;
                j=0;
                continue;
            }
          else
            if(j!=strlen(b)-1)
             j++;
              else
                {  c[n]=a[i];
                    n++;
                }
       }



   }
    c[n]='/0';

    printf("%s",strcat(b,c));

   getch();


  return 0;
}
2008-10-01 21:02
s_k_y
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2008-2-2
得分:0 
谢谢你呀
   我把你的做了一些改动, 也可以动过编译。我原来想的是把数组a元素与b比较后,发现相等就把a数组前移,要是有不同的元素就把它存入到c数组中。然后来接b与c数组。
  但是下面的程序b已经是确定数组,为何还可以b[b_len]=a[i]这样字符数组追加元素呢?
   #include  "string.h"
int  main(void)
{

   int  a_len, b_len,i,j,flag;
   char a[]="acedeax";
   char b[]="acelo";
   a_len=strlen(a);
   b_len=strlen(b);
   for(i=0;i<a_len;i++)
    {     flag=1;
         for(j=0;j<b_len;j++)
          {
            if(a[i]==b[j])
              { flag=0;break;}
           }
          if(flag==1)
           { b[b_len]=a[i];b_len++;  }
     }
b[b_len]='\0';
printf("%s\n",b);
getch();
return 0;
}
2008-10-01 21:51
s_k_y
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2008-2-2
得分:0 
谢谢你呀
   我把你的做了一些改动, 也可以动过编译。我原来想的是把数组a元素与b比较后,发现相等就把a数组前移,要是有不同的元素就把它存入到c数组中。然后来接b与c数组。
  但是下面的程序b已经是确定数组,为何还可以b[b_len]=a[i]这样字符数组追加元素呢?
   #include  "string.h"
int  main(void)
{

   int  a_len, b_len,i,j,flag;
   char a[]="acedeax";
   char b[]="acelo";
   a_len=strlen(a);
   b_len=strlen(b);
   for(i=0;i<a_len;i++)
    {     flag=1;
         for(j=0;j<b_len;j++)
          {
            if(a[i]==b[j])
              { flag=0;break;}
           }
          if(flag==1)
           { b[b_len]=a[i];b_len++;  }
     }
b[b_len]='\0';
printf("%s\n",b);
getch();
return 0;
}
2008-10-01 21:57
s_k_y
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2008-2-2
得分:0 
我也觉得不可以 但是编译通过了 而且结果正确
  就想问问
2008-10-01 22:03
s_k_y
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2008-2-2
得分:0 
那但是char b[]="acelo"; 这一句话系统已经给他指定了大小。也就是固定的了。要是还可以改变'\0'的位置,那这个就是不固定数组了。
   是我哪里没弄明白吗?
2008-10-01 22:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-236034-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016816 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved