c++的vector<string>的iterator怎么转换成char *

qinuxman 发布于 2013/02/28 21:03
阅读 4K+
收藏 0

<无详细内容>

加载中
0
吃土的汉子
吃土的汉子
vector<string> vec;
for( vector<string>::iterator ::i = vec.begin();
     i != vec.end();
     i++ )
{
    char* cStr = (*i).c_str();
    cout<<cStr<<endl;
}
That works?
吃土的汉子
吃土的汉子
回复 @Windoze : 我不知道为什么~习惯了
Windoze
Windoze
很奇怪你为什么不写i->c_str()而要写(*i).c_str()
0
骠骑将军
骠骑将军

string要遍历也可用下标直接[i],不用非要iterator啊

*iterator就是char, 要*char就是&(*iterator)?

骠骑将军
骠骑将军
回复 @qinuxman : vector<string>的iterator如果定义为it,那么*it就是string,然后要到const char*就是*it.c_str()
qinuxman
qinuxman
我问错了,是vector<string>
0
dapengking
dapengking

我感觉String的iterator就是char*

// string::begin and string::end
#include <iostream>
#include <string>
using namespace std;

int main ()
{
  string str ("Test string");
  string::iterator it;
  for ( it=str.begin() ; it < str.end(); it++ )
    cout << *it;
  return 0;
}

0
dvwei
dvwei

string 的iterator就是char *

#include <iostream>
#include <string>

using namespace std;

int main()
{

	string str("TEST");
	char* mystr;
	cout<<sizeof(mystr)<<endl;
	cout<<sizeof(str.begin())<<endl;
	return 0;
}

qinuxman
qinuxman
我问错了,是vector<string>的iterator
0
吃土的汉子
吃土的汉子
char * kid = str.c_str()
qinuxman
qinuxman
之前问错了
qinuxman
qinuxman
vector<string>
0
p
pkevin

c_str();返回一个const char* 不要直接把它赋值给char* 

返回顶部
顶部