ファイルから読み取っている文字列を小文字に変換し、比較のために小文字の文字列を別の文字列に保持しようとしていますが、プレゼンテーションのために元の文字列を保持したいのですが、いくつか問題があります:
ifstream file;
string name,
lnStr,
searchStr,
lowerStr;
int lineNum = 0;
int strCount;
while(getline(file, lnStr))
{
lowerStr = lnStr;
for(int i = 0; lowerStr[i] != '\0'; i++){
lowerStr[i] = tolower(lowerStr[i]);
}
if(lowerStr.find(searchStr, 0) < lnStr.npos)
{
cout << setw(5) << ++lineNum << ":" << lnStr << endl;
strCount++;
}
}
文字列に sub[i] を使用できないようですが、すべてを配列に保持するには多すぎるようです。私はこれを最も効率的に行っていますか?小文字の文字列と元の文字列を分離するにはどうすればよいですか?