| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 577 人关注过本帖
标题:[求助]不知道咋做了,一个小题,麻烦看看
只看楼主 加入收藏
小虾米123
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-9-3
收藏
 问题点数:0 回复次数:5 
[求助]不知道咋做了,一个小题,麻烦看看


编写一个C程序,定义两个字符数组,并初始化数组的值,然后组合这个两个数组的值并存储在第三个数组中,要求用指向数组的指针实现。例如:

》字符数组arr1

H e l l o
》字符数组arr2

W o r l d

将两个数组合并后存储在数组arr3中,arr3 中元素的值应该为:
H e l l o w o r l d

#include<stdio.h>
#define N 5
void main()
{
char a[]={'H','e','l','l','o'},b[]={'W','o','r','l','d'};
char c[N+5];

char i,k,*o,*p,*q;
o=a;p=b;q=c;

for(i=0;i<N;i++,*o++)
{
*q=*o;

}

c[N+5]=*q;

for(i=0;i<N+5;i++,*p++,*q++)
{
if(i>5)
{

这不知道咋写了
printf("%c",*q);
}
}
printf("\n");
}

搜索更多相关主题的帖子: 麻烦 
2006-09-03 21:23
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

您对字符串的理解有所偏差.
char a[]={'H','e','l','l','o'};
这是不标准的字符串.C语言中字符串都以'\0'结尾。您可以直接这样定义:char a[]="Hello";
所以您那个char c[N+5]长度也是不对的,因为至少还要保存一个'\0'结束符.
指针p递增的是地址,p++才是有意义的.


对不礼貌的女生收钱......
2006-09-03 21:44
小虾米123
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-9-3
收藏
得分:0 

我还是想不出来啊,麻烦帮我改一下,可以吗,谢谢啊

2006-09-03 22:45
ares333
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-8-9
收藏
得分:0 

win-tc 环境运行成功,红色部分改为 *q会出现错误,谁知道为什么



#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
main()
{

char a[]={'H','e','l','l','o'},b[]={'W','o','r','l','d'};
char c[11];

char i,k,*o,*p,*q;
o=a;p=b;q=c;

for(i=0;i<5;i++)
{ *q=*o;
q++;
o++;

printf("%c",c[i]);
}
for(i=5;i<10;i++){
*q=*p;
p++;
q++;
printf("%c",c[i]);
}

printf("\n");

getch();
return(0);
}


2006-09-04 08:41
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用小虾米123在2006-9-3 21:23:36的发言:


编写一个C程序,定义两个字符数组,并初始化数组的值,然后组合这个两个数组的值并存储在第三个数组中,要求用指向数组的指针实现。例如:

》字符数组arr1

H e l l o
》字符数组arr2

W o r l d

将两个数组合并后存储在数组arr3中,arr3 中元素的值应该为:
H e l l o w o r l d

#include<stdio.h>
#define N 5
void main()
{
char a[N]={'H','e','l','l','o'},b[]={'W','o','r','l','d'};
char c[N+5];

char i,k,*o,*p,*q;
o=a;p=b;q=c;

for(i=0;i<N;i++,o++)
{
*q=*o;
q++;

}
for(i=0;i<5;i++,p++)
{
*q=*p;
q++;
}


q=c;

for(i=0;i<N+5;i++,q++)
{
printf("%c",*q);

}
printf("\n");
getch();
}

1.字符数组!=字符串
2.用指针进行对数组的操作,针对地址改变(自增处理下一个元素),而不是指针指向的内容.
3.要记住指针所指向在数组中的位置.
4.按理说,这里还不是真正的指针处理,我觉得用字符串+指针会更好做一些.


倚天照海花无数,流水高山心自知。
2006-09-04 09:04
honkerman
Rank: 2
等 级:新手上路
威 望:4
帖 子:3078
专家分:0
注 册:2006-8-25
收藏
得分:0 

#include<stdio.h>
#define N 10
void main()
{
char a[5]={'H','e','l','l','o'},b[5]={'W','o','r','l','d'};
char c[N],*p1,*p2,*p3;

int i,j;
p1=a;p2=b;p3=c;

for(i=0;i<5;i++)
{
*p3=*(p1+i);
p3++;
}
for(j=0;j<N;j++)
{
*p3=*(p2+j);
p3++;
printf("%c",c[j]);
}
printf("\n");
}
谢谢你们,老师讲了个简单点的


" target="_blank">God Bless You[GLOW=255,#00ff00,2]My Friends![/GLOW]
2006-09-04 15:27
快速回复:[求助]不知道咋做了,一个小题,麻烦看看
数据加载中...
 
   



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

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