我用strcpy为什么没效果?
发布网友
发布时间:2022-10-18 12:00
我来回答
共6个回答
热心网友
时间:2023-11-13 12:23
首先,你的printf函数参数不正确,要打印字符串,需要提供字符串首地址。如:
printf("%s", p);
然而,你即使这样修改了,这个程序仍然会崩溃。因为"abcde"是一个字符串常量,它保存在静态常量存储区,它是不允许被更改的。
如果你吧声明语句
char *p = "abcde";
改为
char p[] = "abcde";
才会成功运行并打印"abc"。
对于您的补充:
你自己也说了,p是字符串常量的指针,常量意味着什么?不可以修改嘛!既然不可以修改,你还要往里面拷贝东西??
热心网友
时间:2023-11-13 12:23
首先... 你在Windows里这么干会出异常...
printf("%s", p) 这里不要用*p
热心网友
时间:2023-11-13 12:24
因为字符串 定义 貌似是单引号 ''
热心网友
时间:2023-11-13 12:24
程序崩了吧,*p指向的是静态变量。
char p[10];
strcpy(p, "abc");
printf("%s\n", *p);
热心网友
时间:2023-11-13 12:25
下面是标准用法:
#include <stdio.h>
#include <string.h>
void main()
{
char s[10]="abcde";
char *p=s;
strcpy(p,"abc");
printf("%s",p);
}
热心网友
时间:2023-11-13 12:26
char *strcpy(
char *strDestination,
const char *strSource
);