c++编程练习时遇到的问题(附上程序)
//读入一段文本到vector 对象,每个单词存储为vector 中的一个元素。
//把vector 对象中每个单词转化为大写字母。
//输出vector 对象中转化后的元素,每8 个单词为一行输出。
//使用迭代器访问vector 中的元素
#include "iostream"
#include "vector"
#include "string"
using namespace std;
int main()
{
vector<string> svec;
string str;
while (cin >> str)
svec.push_back(str);
if (svec.size() == 0){
cout << "NO" << endl;
return -1;
}
vector<string>::size_type cnt = 0;
vector<string>::iterator iter = svec.begin();
for (iter = svec.begin(); iter != svec.end(); ++iter)
string::size_type index = 0;{
for (index = 0; index != (*iter).size(); ++index)
if(islower ( (*iter)[index] ))
(*iter)[index] = toupper((*iter)[index]);
cout << *iter << " ";
++cnt;
if (svec.size() % 8 == 0)
cout << endl;
}
system("PAUSE");
return 0;
}
为什么会出现未定义?string::size_type index = 0;不是定义INDEX么?
还有能不能在FOR语句里定义?例如:
for (vector<string>::iterator iter = svec.begin();
iter != svec.end(); ++iter) {
for (string::size_type index = 0; index != (*iter).size();
++index)
我这样编译也提示未定义变量.
正确的代码是什么?
还有最好能解释下上面那段代码,我怕是我理解有误...自己解释的不正确...新人=.=正在自学:)希望大家帮帮我!
谢谢!