複数の区切り文字を使用して文字列を個々の文字列に分割する方法を教えてください。 現在、デフォルトの空白区切り文字が使用されています。最初と最後の文字が英数字以外の場合は手動で削除します。C++複数の区切り文字を使用して文字列を分割する方法
ここでの目標は、.cppファイルを読み込み、C++の予約語ではないすべてのユーザーIDに対して解析することです。
それは良性の例のために働いていますが、このようなもののために:
OrderedPair<map_iterator, bool> insert(const value_type& kvpair)
それが機能していません。 OrderedPairを独自の単語、map_iteratorに分割して、それ自身、bool、insert、const、value_type、およびkvpairを個々の単語に分割したいと思っています。
「<」、(&)。> *「文字列ストリームの区切り文字として使用するにはどうすればよいですか?
while (getline(inFile, line)) {
isComment = false;
stringstream sstream(line);
while (sstream >> word) {
isCharLiteral = false;
if (!isComment) {
if (word[0] == '/' && word[1] == '/')
isComment = true;
}
if (!isMultilineComment) {
if (word[0] == '/' && word[1] == '*')
isMultilineComment = true;
}
if (!isStringLiteral) {
if (word[0] == '"')
isStringLiteral = true;
}
if (!isCharLiteral) {
if (word[0] == '\'' && word.back() == '\'')
isCharLiteral = true;
}
if (isStringLiteral)
if (word.back() == '"')
isStringLiteral = false;
if (isMultilineComment)
if (word[0] == '*' && word[1] == '/')
isMultilineComment = false;
if (!isStringLiteral && !isMultilineComment && !isComment && !isCharLiteral) {
boost :: tokenizer http://www.boost.org/doc/libs/1_57_0/libs/tokenizer/tokenizer.htm – Ajay
最初に、文字リテラルがあります。あなたはASCIIテーブルを覚えておく必要はありません... – LogicStuff
charリテラルよりもascii番号を使用しないようにアドバイスする具体的な理由はありますか?また、この特定のタスクでは、boost :: tokenizerのような他の外部クラスを使用することはできません。文字列クラスを含む標準のC++だけが含まれています。 – momonkey