2 sbshso sbshso 于 2016.02.15 21:09 提问

关于C语言字符串的问题

/*输入两个整型数组,假设数组大小为7,输出不是两个数组共有的元素。
例如,输入1 2 3 4 5 6 7和5 6 7 8 9 0,输出为1 2 3 4 8 9 0.
要求:只能使用。*/图片说明本来打算用指针进行移动变相的删除字符串,但是发生错误,基础不太扎实,求解

5个回答

caozhy
caozhy   Ds   Rxr 2016.02.15 21:21
已采纳

5 6 7 8 9 0 Press any key to continue

caozhy
caozhy   Ds   Rxr 2016.02.15 21:20
 #include <stdio.h>

int main(int argc, char* argv[])
{
    char a[7]={1,2,3,4,5,6,7};
    char b[7]={1,2,3,4,8,9,0};
    char c[20];
    int x = -1;
    int i, j;
    for (i = 0; i < 7; i++)
    {
        int f = 0;
        for (j = 0; j < 7; j++)
        {
            if (a[i] == b[j]) { f = 1; break; }
        }
        if (!f)
        {
            c[++x] = a[i];
        }
    }
    for (j = 0; j < 7; j++)
    {
        int f = 0;
        for (i = 0; i < 7; i++)
        {
            if (a[i] == b[j]) { f = 1; break; }
        }
        if (!f)
        {
            c[++x] = b[j];
        }
    }
    for (i = 0; i <= x; i++) printf("%d ", c[i]);
    return 0;
}
github_27756899
github_27756899   2016.02.16 23:08

char *p = a[i]; //改为: char * p = a+i;
p = a[j]; //改为:p = a+j;
试试.

github_27756899
github_27756899   2016.02.16 23:12

不是a是c .
char *p = c[i]; //改为: char * p = c+i;
p = c[j]; //改为:p = c+j;
printf("%3d",a[i]); //改为:printf("%3c",c[i]);
试试.

lm_whales
lm_whales   Rxr 2016.02.16 00:43

int diffab(char *a,ichar*b,char *c,int m.int n){
int i,j;
char *p=c;
for(i=0;i=m;i++){
for(j=0;j<n;j++){
if(a[i]==b[j]){
break;
}
if(j==n) *p++=a[i];
}
for(i=0;i=n;i++){
for(j=0;j<m;j++){
if(a[j]==b[i]){
break;
}
if(j==m) *p++=b[i];
}
return p-c;
}

int main()
{
char a[]={1 ,2 ,3, 4 ,5, 6 ,7};
char b[]={1,2,3,4,6, 8, 9, 0},
char c[14]={};
int n =diffab(a,b,c,7,7);
for(int i=0;i<n;i++)
cout <<c[i]<<" ";
}
cout <<endl;
return 0;
}

这好像是求对称差集的方法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言常见字符串面试题
一些常用字符串操作函数的内部实现  memset: /*  * memset - Fill a region of memory with the given value  * @s: Pointer to the start of the area.  * @c: The byte to fill the area with  * @cou
C语言:关于字符串的编程题
题目如下: You’ve gathered some e-mail addresses from a variety of sources, and you want to send out a mass mailing to all of the addresses. However, you don’t want to send out duplicate messages. You need
与字符串有关的一些典型问题的C++解法
一、C++中String类的用法总结 http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html http://www.cnblogs.com/gaojun/archive/2010/09/11/1824016.html http://www.cnblogs.com/ggjucheng/archive/201
数据结构 括号匹配问题 (栈 C语言)
现在,有一行括号序列,请你检查这行括号是否配对。 输入数据保证只含有"[","]","(",")"四种字符输出如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No 代码如下 #include #include #define SIZE 20 #define CREMENT 10 typedef struct{ char *ba
2016 C语言面试题——字符串函数的实现
C语言各类字符串函数的实现开学就要开始找工作了,我觉得这些函数被问到的几率还是很大的,所以在这里与大家分享strlen函数原型:#include <string.h> unsigned int strlen (char *s);功能:计算指定的字符串s 的长度,不包括结束字符”\0”。我的实现:/****************************************************
关于C语言的面试问题
今天,参加了一个公司的面试,下面写一下一些感想和想法。 那个公司叫高知特信息技术(上海)有限公司,还是个美国财富500强,上市公司。听那个宣讲人说的很牛X的。 那个宣讲人大致给我们介绍了一下情况。就是高知特信息技术有限公司上海分公司委托他们公司招聘25名工程师,并 且包括培训业务。他们是个培训公司,经常和大公司合作招聘和培训,然后往公司里输送人才。 大家都知道,世界500强公司
C语言关于字符串操作的安全问题
安全问题C的字符串操作,是在内存上直接进行的,而没有加入什么安全的措施,这使得拷贝(strcpy)和追加(strcat)操作存在着严重的问题,下面是我个人的一些总结(文字的解释我认为没有什么用,大家多测试就是,建议大家采用vs2013及以上版本来测试,看内存比较方便,具体的函数用法大家用用搜素引擎,我不赘述)代码/* 在C的情况,总的来说,目标字符串应该确保容量足够大 *//* C语言字符串安全追加
[string]C语言中字符串使用需注意的地方
问题描述:字符串在C语言中使用很多,可以用于输出调试信息。字符串变量即为字符数组,但是在末尾会自动加上一个空字符来进行结尾标示。     字符串操作:C允许对指针取下标,字符串也可以直接取下标操作, char ch1; ch1 = "abcd"[2];     此时ch1值为c。     但是字符串指针不可以试图用来改变字符串的值,这样做会导致运行不稳定,例如出现调试错误等, char *p =
C语言字符串的经典例题
//1.统计单词的个数 #include int main(void) { int i,flag=0,number=0; char str[20]; printf("请输入一行字符串:"); gets(str); for(i=0;str[i]!='\0';i++) { if(str[i]==' ') flag=0;//flag用来标记是否为空格 else  if(fla
字符串数组初始化相关问题总结
C字符串数组初始化相关问题总结 在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式: (1) char str[10]="";(2) char str[10]={'\0'};(3) char str[10]; str[0]='\0'; 第(1)(2)种方式是将str数组的所有元素都初始化为'\0',而第(3)种方式是只将str数组