c++指针操作字符串
#include <stdio.h>#include <string.h>
char *strcpy(char *str,char *target,int size)
{
int i;
memset(str,0,size);
for(i=0;i<size;i++)
{
*(str+i) = *(target+i);
}
//*(str+size) = '\n';
return str;
}
int main(void)
{
char *str1 = (char *)"hello world";
char *target =(char *)"hello linux code";
int size = strlen(str1);
char *str = strcpy(str1,target,size);
return 0;
}
请问,各位大佬为什么程序报错。函数是想实现对strcpy函数的重载。 你常量怎么能修改 这不是 C 语言么?
char *str1 = (char *)"hello world";
char *target =(char *)"hello linux code";
这样的声明是无法修改的只能读 不能写 wp231957 发表于 2021-8-12 08:44
char *str1 = (char *)"hello world";
char *target =(char *)"hello linux code";
这样的声明...
第一次接触C++,r如果不加强制转换,会告警。 wuxianbiao 发表于 2021-8-12 22:16
第一次接触C++,r如果不加强制转换,会告警。
字符串常量是 常量
常量是不能改变的 wuxianbiao 发表于 2021-8-12 22:16
第一次接触C++,r如果不加强制转换,会告警。
什么是变量?,什么是常量?
我理解这个"hello linux code"是常量,char *str1 = (char *)"hello world";只不过是把这个常量的指针赋值给str1,所以修改str1指针下的内容,就是修改常量当然报错。
页:
[1]