printf("%s",strcpy(str1,str2,2));
我晕,把最后的2去掉
谭书上说的,可以用strcpy将字符串2中前面若干个字符复制到另一字符数组中去. 例如:
strcpy(str1, str2, 2);
作用是将str2中前面2个字符复制到str1中去,然后再加上一个'\0'.
您是不是弄错了,您是要用memcpy(str1,str2,2);这个函数吧,
但即便您用了这个函数,也只是把China --等的字符串的前两个换成Sh而已
并不改变后面的字符,即变为Shina GuangDong而已.
另外回复上上楼的,您在printf (stract());的时候,空间是由系统开辟的,虽是不可知的,但是安全的,当然就没问题了,这就同char *p="sting";一样,是没问题的.
但str3[10]这越界了,地址无法预料,故而是危险的!
您是不是弄错了,您是要用memcpy(str1,str2,2);这个函数吧,
但即便您用了这个函数,也只是把China --等的字符串的前两个换成Sh而已
并不改变后面的字符,即变为Shina GuangDong而已.
另外回复上上楼的,您在printf (stract());的时候,空间是由系统开辟的,虽是不可知的,但是安全的,当然就没问题了,这就同char *p="sting";一样,是没问题的.
但str3[10]这越界了,地址无法预料,故而是危险的!
书上确实是strcpy (P137).不是memcpy. 看来又是老谭的书有问题. 谢谢.
#include "stdio.h"
main()
{
char str1[20]={"China GuangDong "};
char str2[10]={"ShenZhen"};
char str3[10];
str3[10]=strcat(str1,str2);
printf("%s",str3[10]);
}
printf("%s",str3[10]);
这打印什么呢
China GuangDong ShenZhen
你打印了吗