1 #include <iostream>
2 #include <string>
3 using namespace std;
4 int main()
5 {
6
7 string sr[3]={"ddf","bcd"};
8 string s[3];
9 strcpy(s,sr);
10
11 cout<<s[0]<<endl;
12
13 return 0;
14 }
~
报错:
2.cpp:9: error: cannot convert `std::string*' to `char*' for argument `1' to `char* strcpy(char*, const char*)'
看不懂。
问题2。如何定义string型数组指针啊。。。这程序我是想这样做
1 #include <iostream>
2 #include <string>
3 using namespace std;
4 int main()
5 {
6
7 string *sr[3]={"ddf","bcd"};//报错
8 string s[3];
9 strcpy(s[0],*(sr));
10 strcpy(s[1],*(sr+1));
strcpy(s[2],*(sr+2));
11 cout<<s[0]<<s[1]<<s[2]<<endl;
12
13 return 0;
14 }
~
怎么能出来。。顺便讲解一下strcpy怎么复制string数组啊。。
VS2013 C++中的strcpy用不了,说换成strcpy_s,还是出现错误了。_百度...
这是因为常量字符串不能被修改。你的程序会运行错误。至于修改成strcpy_s,这只是增强了函数的安全,并不改变strcpy函数的要求。strcpy_s函数的原型是:strcpy_s( char *strDestination, size_t numberOfElements, const char *strSource );第二个参数是strDestination字符串的大小,用意是控制...
一个C++中string命令的问题(菜鸟级)
这是cout的函数特性造成的:因为直接写cout<<array3;的话,array3被当做一个指针,指向一个字符串,那么cout函数就会顺着这个地址一直走下去,并且输出地址所指向的值,直到程序异常结束为止。你用个循环输出数组的值,防止越界,这是common sense。
c++的strcpy的问题
第一,strcpy包含在头文件string.h中。第二,char *ch;\/\/这里定义了一个字符指针变量ch ch="sdgsdfgfd\\n";\/\/错误。"sdgsdfgfd\\n"是一个字符串常量,因而不能复制给ch。但可以这样,char *ch="sdgsdfgfd\\n";在定义时,对ch进行初始化,这条语句的意思是为字符 串 常量"sdgsdfgfd\\n"分配内...
学c++遇到的关于strcpy的问题
strcpy(chsr* des, const char* src);是一个函数,要求的参数是两个字符指针(char*),而你的str的类型是一个string类,所以类型不匹配,str.data() 的类型是一个指针,类型匹配
C++strcpy的问题。
strcpy()的两个形参是两个字符指针,不是两个字符。第一个开参一般为一个字符数组;如:char a[32] = “world”, char *s = "hello";strcpy(a, s);是把s为首地址的字符串复制到数组a中。但是你如果这么写strcyp(s, a)就会出错。因为s只是字符串的首地址,没有空间。不懂还可继续问。
c++字符串数组问题?
C语言是不能用 = 对数组进行赋值的。定义数组时候初始化使用 = , 但这里不能理解成赋值,因为这是编译器在编译的时候进行处理的。赋值预计在编译时候报错C2106(运算符的左操作数必须为左值)。因此C对于字符串的赋值只能通过两种方式:1,strcpy,这是一个内存拷贝类的函数 2,循环赋值,像一个常规...
为什么我这个strcpy在devc++运行时会出错
"dljfdfdfdf";这个字符串存在文本常量区,不可以改变.而你后面的操作对它进行了改变.编译器不会发现这个错误,只能在运行时候出现.char a[6] = "aaaaa";char *b = "hello";改成这样就可以了.对数组A初不初始化都可以.当然要注意数组a的大小.要能容得下b中的元素,别忘记了还有一个'\\0'....
c++中strcpy问题,请高手指点,谢谢啦。
strcpy(str,"中国人");\/\/str指向它,但是,这个位置既然是常量,当然就不能赋值了。第二段:和第一段一样的道理。第三段:char *str;char str2[20];str=str2;\/\/str重新指向了,一个有20个字符大小的字符数组开头位置 strcpy(str,"我是中国人");\/\/所以,将“我是中国人”这个字符串,赋值...
为什么调用strcpy是不能自身copy到自身?不明白为什么会出现RE...看原 ...
void __fastcall TForm1::Button1Click(TObject *Sender){ char buf[20];strcpy(buf,buf);} 这是C++BUILDER6.0,自已复制自已没出错,主要还是怕重叠区造成的尾0 覆盖导到处的出错,有的C++编译程序就故意做了限制而已,这是人为的。而C++BUILDER6.0 就不做任何限制;...
c++,为什么strcpy()过长的string到长度不足的char数组中,照样可以正...
函数原型声明:extern char *strcpy(char* dest, const char *src);说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。如果dest空间不足以容纳src,编译器也不会自动为其增加长度,会把 dest以后 的内存数据覆盖,看似“一切正常”,但是潜藏很大危险,易导致缓冲区溢出。...