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

初学者求助:关于字符数组!

笛神 发布于 2008-12-11 16:21, 1439 次点击
字符串处理函数是怎么起作用的?
如:
strlen(a)计算的是什么?(准确点!)(是不是a中从第一个字符到第一个空字符(不包括)的个数?)

strcpy(a1,a2)有什么条件吗?(比如如果a1长度小于a2的会有什么后果?)

strcat(a1,a2)又对a1,a2有什么要求?

strcep()又应该怎么用?

还有 sizeof()/sizeof() 和 strlen() 应该怎么用?

谁能告诉我答案啊,我万分感谢~最好能清晰点!!!

[[it] 本帖最后由 笛神 于 2008-12-11 16:37 编辑 [/it]]
10 回复
#2
笛神2008-12-11 17:46
给一两句提示也好啊~
#3
chjiwei2008-12-11 22:15
strcpy(a1,a2
是把a2复制给a1的
不要什么条件
strcat(a1,a2)
是把a2剪切给a1的那样的话a2的地址就变成空了
sizeof()/sizeof()
是用来求字符的长度的
#4
chjiwei2008-12-11 22:17
strcpy(a1,a2
是把a2复制给a1的
不要什么条件
strcat(a1,a2)
是把a2剪切给a1的那样的话a2的地址就变成空了
sizeof()/sizeof()
是用来求字符的长度的
#5
笛神2008-12-11 22:43
终于有个回复了!!

我再想问下,C++读char数组(或指针)时是不是总以'\0'结束的?
这样有以下定义:
char *a="aaa\0pp";
cout<<a<<endl;
是不是输出aaa?

然后若有以下代码会有什么情况出现吗?

char *p1="shiyixia";
char a[3]="a";
strcpy(a,p1);

这样赋值会不会造成对a[2]以下的内存空间的未知应用?即以后计算机会不会有可能给别的量分配a[2]以下的内存空间??

再有
strcat(a1,a2)一定会造成a2的地址变空吗?
我试了
cout<<a2<<endl;
可以输出其字符串啊~
#6
chjiwei2008-12-11 23:42
我再想问下,C++读char数组(或指针)时是不是总以'\0'结束的?
这样有以下定义:
char *a="aaa\0pp";
是不用加的它自己会自己给加上去的
#7
笛神2008-12-11 23:50
.....我说的是读的时候~
char *a="aaa\0pp";
cout<<a<<endl;
是不是输出aaa?
#8
tfg01162008-12-12 11:12
输出什么你自己试一下不是最好吗?有问你时间不就早明白了吗?
#9
笛神2008-12-12 12:12

试过了的啦~
只是想问问
字符串处理函数是怎么起作用的?
如:
strlen(a)计算的是什么?(准确点!)(是不是a中从第一个字符到第一个空字符(不包括)的个数?)

strcpy(a1,a2)有什么条件吗?(比如如果a1长度小于a2的会有什么后果?)

strcat(a1,a2)又对a1,a2有什么要求?

strcep()又应该怎么用?

还有 sizeof()/sizeof() 和 strlen() 应该怎么用?

例如:
若有以下代码会有什么情况出现吗?

char *p1="shiyixia";
char a[3]="a";
strcpy(a,p1);

这样赋值会不会造成对a[2]以下的内存空间的未知应用?即以后计算机会不会有可能给别的量分配a[2]以下的内存空间??
#10
debroa7232008-12-12 14:27
strcpy 已经放弃的API,试着换用strcpy_s,关于弃用的C函数,可以看看:
http://blog.
了解一下为什么禁用了,时代前进了许久,为什么学校还留在很久以前呢?
#11
笛神2008-12-12 14:46
I don't know!!!
Thank you!!
1