求高手讲解.c_str()的作用,还有为什么我的以下程序会乱码???
答案:2 悬赏:80
解决时间 2021-02-16 01:18
- 提问者网友:伪善人独行者
- 2021-02-15 00:43
求高手讲解.c_str()的作用,还有为什么我的以下程序会乱码???
最佳答案
- 二级知识专家网友:我们只是兮以城空
- 2021-02-15 00:58
.c_str()就是把string类型转为char*类型,它是string类型自带的一个类型转换函数。
关于乱码,是由于你的数据没有初始化,并且输出时循环越界引起的,修改为以下即可:
#include
#include
using namespace std;
int main()
{
string str="Hello World!";
char arr[50]={0};
strcpy(arr,str.c_str());//.c_str()是把string类型转为char*格式!
for(int i=0;i<50;i++)
{
cout<
}
return 0;
}
关于乱码,是由于你的数据没有初始化,并且输出时循环越界引起的,修改为以下即可:
#include
#include
using namespace std;
int main()
{
string str="Hello World!";
char arr[50]={0};
strcpy(arr,str.c_str());//.c_str()是把string类型转为char*格式!
for(int i=0;i<50;i++)
{
cout<
return 0;
}
全部回答
- 1楼网友:茫然不知崩溃
- 2021-02-15 01:33
for(int i=0;i<100;i++)你把这个改为for(int i=0;i<12;i++)试试看怎么样。。。改成这样后我在VS2010里运行没问题。。。
c_str()函数返回一个指向字符串的指针, 内容与string串相同. 如果用到printf这种C专用的东西就要用到c_str.
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯