C++ string 数组 用strcpy怎么出不来?

1#include<iostream>2#include<string>3usingnamespacestd;4intmain()5{67stringsr[3]={"dd... 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数组啊。。
展开
 我来答
srhouyu
推荐于2016-11-08 · TA获得超过2407个赞
知道大有可为答主
回答量:1198
采纳率:37%
帮助的人:943万
展开全部
1.string和char*是不同的。string是智能字符串,这种类型的变量是一个对象,不是一个简单的char指针。它已经重载了“赋值”运算符,因此要赋值直接s[0] = sr[0];s[1] = sr[1];等等即可。

2.string*可不是string,怎么能给string*赋一个{"ddf","bcd"}这样的东西呢?必须先
string sr[3]={"ddf","bcd"};
然后
string* psr = sr;

总之,string更像int、float,而不是char[]。strcpy是C语言时代的C风格字符串的复制函数,仅适用于char[],不适用于C++的string类。
百度网友f8e9d481
2015-11-20 · TA获得超过168个赞
知道答主
回答量:91
采纳率:0%
帮助的人:14.9万
展开全部

拷贝一个string 数组不能用strcpy函数,自己写一个嘛,很简单的,用for循环来实现,大致思路是生命另一个数组,用for循环遍历string数组,将值赋给另一个数组。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤行雪影
推荐于2018-05-10 · 超过60用户采纳过TA的回答
知道小有建树答主
回答量:182
采纳率:100%
帮助的人:91万
展开全部
C++ string 是类,strcpy是C的字符串操作函数,当然不行, 可用c_str()转成以0结尾的C字符串才可用
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
archmageee4
2015-11-13 · TA获得超过1516个赞
知道大有可为答主
回答量:1581
采纳率:78%
帮助的人:924万
展开全部
string 不能和const char * 混用的.
string 的好处是提供了丰富的函数接口,便于你对字符串内容进行分析.查找.切割.替换等复杂操作.
因此代码里如果有定义常量字符串的需求的话.最好使用const char 比如:
const char cc1[]="hello";
const char* cc[3]={"tom","jerry","disney"};
而别用string来定义常量.
另外针对第二题. 请不要对string 使用 一般的 strcat ctrcpy等函数.这些函数最好用于一般的char[] 数组
而对string, 应当使用他自己的配套函数
例如
s4=s1;
s1=s2+s3;
s2=s1.substr(2,4);
s3.erase(4,2);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
当年错过9j
2007-01-27 · TA获得超过1387个赞
知道小有建树答主
回答量:967
采纳率:0%
帮助的人:866万
展开全部
2楼的说的对,string这个东西的拷贝,查找,合并等操作非常方便,并且安全效率高;
不过 string *psr = sr; 这句不是拷贝一个字符串数组,psr本身没有对象实例,只是指向sr数组实例的指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式