读书人

字符串操作有关问题 求帮忙

发布时间: 2012-07-30 16:19:05 作者: rapoo

字符串操作问题 求帮忙
void main()
{
char p1[10]="hate";
char *p2;
p2=p1;
p2="love";
printf("%s\n",p1);
}

打印的为什么不是P2是值,而是P1的值?

[解决办法]
你只是将p2指向了p1,然后将p2指针指向"love"。最后输出的是数组p1,怎么会打印p2的值呢?
你要打印p2的值,改成printf("%s\n",p2);

[解决办法]
p2=p1之后,p2指向了p1的第一个元素'h'的地址,要想改变p1数组的内容,用*p2就可以了。
比如*p2 = 'l'将使p1的第一个元素改成'l',然后移动p2指针到下一个元素++p2;
或者strcpy(p2, "love", sizeof("love"));
[解决办法]

探讨
或者strcpy(p2, "love", sizeof("love"));

[解决办法]
p2=p1;//p2指向了p1
p2="love";//p2指向了常量字符串love
如果需要修改p1的值的话,使用strcpy吧
C/C++ code
#include <stdio.h>#include <string.h>void main(){    char p1[10]="hate";    char *p2;    p2=p1;//    p2="love";    strcpy(p2,"love");    printf("%s\n",p1);} 

读书人网 >C语言

热点推荐