1、c_str()
c++语言提供了两种字符串实现,其中较原始的一种只是字符串的c语言实现,还有一种就是c++的string实现
2、二者的转化
我们经常使用的一种方法是
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char s[20];
string str="abcdefg";
strcpy(s,str.c_str());
cout<<s<<endl;
return 0;
}
使用strcpy就可以将二者进行转化
注意:c_str函数的返回值是const char* 的,不能直接赋值给char*
也就是说,下面这种例子是错误的方法
#include<iostream>
using namespace std;
int main()
{
char* c;
string s="a";
c=s.c_str();
cout<<c<<endl;
return 0;
}
devc++的错误提示是
这是因为,c_str()返回的是一个临时指针,不能对其进行操作
c_str()返回的是一个分配给const char* 的地址,其内容已设定为不可变更,如果再把此地址赋给一个可以变更内容的char*变量,就会产生冲突
下面这个例子是我在做项目的时候遇到的,可以利用atoi实现string和整型的判断
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
string str="1" ;
if(atoi(str.c_str())==1)
{
cout<<"yes"<<endl;
}
else
{
cout<<"no"<<endl;
}
return 0;
}
运行结果是