字符串操作问题 求帮忙
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"));
[解决办法]
#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);}