您的位置:程序门 -> c/c++ -> c++ 语言



两个字符串数组a和b,找出a有而b没有的元素数组c


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


两个字符串数组a和b,找出a有而b没有的元素数组c
发表于:2007-04-21 17:27:17 楼主
比如:
字符串数组   a,b,c;
a里有   1,2,3,4,5,6,a,b,c,d,e,f
b里有1,2,3,4,5,6,7,8,9,10
生成一个c,c里的元素有a,b,c,d,e,f

当然,实际每个元素都是一个字符串,而且元素有几百个。
发表于:2007-04-21 17:36:171楼 得分:0
最简单的数就是从a中取出一个数,看看b有没有,没有就放到c里面去。。。
发表于:2007-04-21 20:42:092楼 得分:0
c++标准库里有一个算法函数模板:set_difference <> (),可以做这件事:
#include   <algorithm>
using   namespace   std;

int   main()
{
    const   int   count_a=12;
    const   int   count_b=10;
    char   a[count_a]={...},   b[count_b]={...},   c[count_a];

    set_difference(a,   a+count_a,   b,   b+count_b,   c);

    ...
}
ok,很简单吧
发表于:2007-04-21 22:16:013楼 得分:0
假设a,b是两个字符串,可按下列方法求c:
楼主可在这个基础上进行扩展:

#include   "stdafx.h "
#include   "iostream.h "
#include   "stdio.h "
const   n   =   1000;

int   main(int   argc,   char*   argv[])
{
char   a[n];
char   b[n];
char   ch;
bool   flag   =   false;
int   i   =   0,   j   =   0;
       
puts( "请输入a数组的元素: ");
while((ch   =   getchar())   !=   '\n ')
{
a[i++]   =   ch;
}
a[i]   =   '\0 ';

cout < < "a数组中的元素是: ";
cout < <a < <endl;
                  cout < <endl;

puts( "请输入b数组的元素: ");
while((ch   =   getchar())   !=   '\n ')
{
b[j++]   =   ch;
}
b[j]   =   '\0 ';

cout < < "b数组中的元素是: ";
cout < <b < <endl;
                  cout < <endl;

for(int   m   =   0;   m   <   i;   m++)
{
for(int   n   =   0;   n   <   j;   n++)
{
if(a[m]   ==   b[n])
{
flag   =   false;
break;
}
else
{
flag   =   true;
}
}
if(flag   ==   true)
{
cout < <a[m];
}
}

cout < <endl;
return   0;
}
发表于:2007-04-21 22:26:244楼 得分:0
longshanks(longshanks)   对stl很熟悉哈...
呵呵...
发表于:2007-04-21 22:26:585楼 得分:0
对比~,循环赋值就可以了啊


快速检索

最新资讯
热门点击