String 类 的c_str()函数

先看一个例子:
 
[html]  view plain  copy
  1. int lines, i;  
  2.     int left, right;  
  3.   <strong><u>  string strleft,</u></strong>  
  4.     pNode tPointerArray[MaxNum];  
  5.     pNode tPointer;  
  6.     bool flag[MaxNum] = {false};  
  7.     cin >> lines;  
  8.     for ( i = 0; i < lines; i++ )  
  9.     {  
  10.         tPointer = ( pNode )malloc( sizeof( tNode ) );  
  11.         cin >> strleft >> strright;  
  12.         if ( strleft == "-" )  
  13.         {  
  14.             left = -1;  
  15.         }  
  16.         else  
  17.         {  
  18.     <strong><u>   left = atoi(strleft.c_str());</u></strong>  
  19.             flag[left] = true;  
  20.         }  
这段代码里left的值到底是什么意思,函数 strleft.c_str(); 又是什么意思?
今天查到《C++Primer》
[html]  view plain  copy
  1. 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值