C++ 从string转成char*[],SOS急求救~~~!!!

来源:百度知道 编辑:UC知道 时间:2024/07/01 00:30:57
char i[44];
for(string::iterator t=age.begin();t!=age.end();++t)
{
if(number>7)
{
cout<<"*t: "<<*t<<endl;
i[yh]+=(*t);
cout<<"i[yh]: "<<i[yh]<<endl;
++yh;
}
++number;
}
cout<<"char: "<<i[6]<<endl;
int AGE=atoi(&i[44]);

//失败了~~~!!!要怎么做才行啊?

//我是希望使用atoi函数将string转成int,

//atoi函数需要的形参的const *char

//所以我要使用atoi函数就必须先将整个string对象转换过来,所以要char[]数组

//怎么做才是啊~~~!!!?????

int AGE = atoi(age.c_str());

网上很多资料说string.c_str()可以转化成char*, 我试过几次都不行(乱码), 具体原因不明(我也小菜)。下面的是我测试代码:
#include "stdafx.h"
#include <iostream>
using namespace std;

char* getChar()
{
char* pC = new char[];

std::string s = "this is a test";

strcpy(pC, s.c_str());
pC[s.size()] = '\0';
//pC = s.c_str();

return pC;
}

int _tmain(int argc, _TCHAR* argv[])
{
std::cout << getChar() << endl;
return 0;
}

string类的c_str方法,可以获得字符串的char *类型的头指针.