c++如何把string里的数字转为int型。比如123/896要转换为两个数字一百二十三和八百九十六
如果对这个处理的话是看成一百二十三处理吗
追答atoi(b.c_str())的值就是一百二十三,是个整数
追问头文件主要string就行了?
追答#include
#include
using namespace std;
编译不能过
为什么不能直接atoi(b)
追答你的编译器报什么error?
我的编译器上这样就已经能正常执行了:
#include
using namespace std;
int main(int argc, char* argv[])
{
string a("123/896");
string b,c;
int pos;
pos=a.find('/');
b.assign(a,0,pos);
c.assign(a,pos+1,a.length());
cout << atoi(b.c_str()) << endl;
cout << atoi(c.c_str()) << endl;
return 0;
}
用你的可以了
atoi(b)不行
c语言结构体删除。就是指定一个位置然后删除,就像是队列,叫一个人出列,后面的人往前。最后要输出没有出列的
这个有什么函数吗
追答atoi()函数的参数类型是char *型,而b是string型,两者不同,所以atoi(b)编译是过不了的,b.c_str()是将string型转成char *型的方法,所以要用atoi(b.c_str())
追问哦
那我问的结构体删除有什么函数
追答C语言里没有现成的函数可用,但C++的vector类就是这样的队列,用它的erase()方法可以轻松地删除一个元素,后面的元素会自动往前。
追问那如果一开始是用结构体来储存名字和号码,那就只能一个个赋值到vector
问一下,是不是结构体不能b【1】=b【2】
追答结构体可以b【1】=b【2】的