注册 登录
编程论坛 C++教室

数组的问题

mingreign 发布于 2007-09-19 11:08, 688 次点击

各位朋友,帮忙看看我的程序.谢谢了.
#include<iostream.h>
#include<string.h>
void main()
{
char a[4][20]={"beijing","shanghai","tianjing","guangzhou"};
char p[20];
for(int i=0;i<4;i++)
cout<<&a[i][0]<<endl;
strcpy(p,&a[0][0]);
for(i=1;i<4;i++)
if(strcpy(p,&a[i][0])<0)
strcpy(p,&a[i][0]);
cout<<endl<<p<<endl;
}
为什么 cout<<&a[i][0]<<endl输出的不是每个字符串的首字母呢?还有strcpy(p,&a[i][0]);是什么意思? 谢谢各位朋友的帮忙呢?

10 回复
#2
天使梦魔2007-09-19 11:22
你用的是&a引用A是输出地址值。
strcpy把src所指由NULL结束的字符串复制到dest所指的数组中
#3
chen78062007-09-19 11:23
字符串赋值。
#4
踏魔狼2007-09-19 11:25
cout<<&a[i][0]<<endl
这以是首地址啦.同指针一样.去掉&就是首字母啦.
strcpy()是拷贝函数.把字符串&a[i][0]拷贝到p.
#5
從霝開匙2007-09-19 11:38
strcpy(p,&a[i][0])<0
这是个什么条件是复制失败的意思吗?

[此贴子已经被作者于2007-9-19 11:39:14编辑过]

#6
踏魔狼2007-09-19 11:43

strcpy()函数返回目标字符串.

strcpy() < 0
它的意思是拷贝失败

#7
mingreign2007-09-19 14:33
回复:(踏魔狼)strcpy()函数返回目标字符串.str...
谢谢指点,那么
if(strcpy(p,&a[i][0])<0)
strcpy(p,&a[i][0]);
意思就应该是复制失败,再复制,那四个字符串哪个呢复制成功呢?为什么?还要谢谢你的回复.
#8
mingreign2007-09-19 14:38
回复:(天使梦魔)你用的是&a引用A是输出地址值。...
     我也记得他是输出地址值,那我改成a[i][0]就应该输出地址所寸的变量吧,为什么有显示错误呢?还有你可以详细一点告诉我他为什么输出的地址值是整个字符串呢?谢谢.
#9
踏魔狼2007-09-19 14:56
你应该知道,
char *str = "this is string";
cout<<str<<endl;
这种指针方式的输出吧!
那么cout<<&a[i][0]<<endl;也一样.

你改成cout<<a[i][0]<<endl;会有什么错误呀.我就没有错误.
#10
mingreign2007-09-19 19:11
回复:(踏魔狼)你应该知道,char *str =

朋友,非常感谢你的帮忙.我很希望和你成为好朋友,让我们在编程方面有更大的进展,希望你能留下你的QQ,让我们以后可以更方便的探讨.

#11
踏魔狼2007-09-19 19:55
QQ:447389477
经常在线!
1