0
点赞
收藏
分享

微信扫一扫

String 类 的c_str()函数


先看一个例子:

int lines, i;
int left, right;
<strong><u> string strleft,</u></strong>
pNode tPointerArray[MaxNum];
pNode tPointer;
bool flag[MaxNum] = {false};
cin >> lines;
for ( i = 0; i < lines; i++ )
{
tPointer = ( pNode )malloc( sizeof( tNode ) );
cin >> strleft >> strright;
if ( strleft == "-" )
{
left = -1;
}
else
{
<strong><u> left = atoi(strleft.c_str());</u></strong>
flag[left] = true;
}这段代码里left的值到底是什么意思,函数strleft.c_str();又是什么意思?

今天查到《C++Primer》
string的函数c_str()是获取这个字符串的首指针,例如: string str = "1234";那么 char* pStr = str.c_str(); 中 pStr就是指向"1234"字串的首地址 '1' 。

那么知道:

atoi 函数是把字符串的数字转为数字型的数值,
例如:int n = atoi("1234");那么结果是n的数值就为1234。
strleft 是 string 字符串类型的对象,
那么string的函数c_str()是获取这个字符串的首指针,
例如: string str = "1234";那么 char* pStr = str.c_str(); 中 pStr就是指向"1234"字串的首地址 '1' 。
那么 left=atoi(strleft.c_str());就是把 strleft 这个字串(数字)转换为数值型并赋值给 left。

举报

相关推荐

0 条评论