经过调试,我以为我做对了。但它只是第一个成员作为向量中的第一个被纠正的元素。
while ( !inFile->eof() )
{
getline( *inFile, str1, ',' );
sStruct.str1 = str1;
getline( *inFile, str2, ',' );
sStruct.str2 = str2;
getline( *inFile, str3, ',' );
sStruct.str3 = atof( str3.c_str() );
getline( *inFile, str4 );
sStruct.str4 = atof( str4.c_str() );
myLength = sStruct.str1.length();
for( ; sIndex < myLength; sIndex++ )
{
if ( 97 <= str4[sIndex] && str4[sIndex] <= 122 )
{
str4[sIndex] -= 32;
}
}
sStruct.str1 = str1;
vectorData->push_back( sStruct );
}
在我选择读取文件的方法下实现此代码,只将第一个struct成员(在本例中为str1)更改为全部大写字符。对于相同的结构成员str1,所有字符都不受影响。
我的循环没有做什么?
答案 0 :(得分:3)
正如评论中已经说明的那样,您首先应该在代码中看到一些内容:
答案 1 :(得分:1)
我建议使用从头算法转换来转换,它更清晰:
transform( str4.begin(), str4.end(), str4.begin(), toupper );