cstring就是char数组,string是stl中定义的数据结构,二者可以相互转化,另外我们经常需要从字符串中提取出数字,下面一一介绍。
cstring -> string
cstring的历史早于string,所以它cstring本身当然不会有方法可以直接转化为string,但是string却可以用cstring来初始化或者调用构造函数
string str(cstr)
string -> cstring
中定义了一个成员函数 c_str
,可以将一个string变量转换成cstring,返回的是一个const char指针,但是cstring定义完成后就不能随便赋值了,只能用strcpy
char cstr[100];
string str="sdhfs";
memcpy(str, str.c_str());
cstring ->数值
<cstdlib>
中定义了两个函数atoi(c_str),atof(c_str)
,分别将cstring转化成int和double类型
string ->数值
<string>
中有两个函数stoi(str),stod(str)
,分别将string转化成int和double类型,注意这两个函数不是string的成员函数。
测试程序
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
using namespace std;
int main(){
char c_str[100];
string str;
cout<<"Please input a cstring:"<<endl;
scanf("%s",c_str);
str=string(c_str);
cout<<"The converted string is:"<<endl;
cout<<str<<endl;
cout<<"Please input a string:"<<endl;
cin>>str;
strcpy(c_str,str.c_str());
cout<<"The converted cstring is:"<<endl;
printf("%s\n",c_str);
scanf("%s",c_str);
cout<<atoi(c_str)<<endl;
cout<<atof(c_str)<<endl;
cin>>str;
cout<<stoi(str)<<endl;
cout<<stod(str)<<endl;
return 0;
}