本文共 864 字,大约阅读时间需要 2 分钟。
先看一个例子:
- 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。
转载地址:http://nkexi.baihongyu.com/