私は、行末の文字 '\ n'と文字列を比較する方法を知りたかったのです。 私はgetline関数を使いたくないのです。行末の文字 ' n'と文字列を比較するにはどうすればよいですか?
私の目的は、行末の文字 '\ n'に達するたびに行の数を増やして、ファイルが単語を読み出すたびに行番号を出力するようにすることです。 「共通」ワード線4画面希望出力線4
おかげで、 である場合
例えば「青」ワード線2画面である場合だろう出力線2 またはこれは私サイトを初めて使用する。
私は、行末の文字 '\ n'と文字列を比較する方法を知りたかったのです。 私はgetline関数を使いたくないのです。行末の文字 ' n'と文字列を比較するにはどうすればよいですか?
私の目的は、行末の文字 '\ n'に達するたびに行の数を増やして、ファイルが単語を読み出すたびに行番号を出力するようにすることです。 「共通」ワード線4画面希望出力線4
おかげで、 である場合
例えば「青」ワード線2画面である場合だろう出力線2 またはこれは私サイトを初めて使用する。
私が理解しているところから、以下の機能があなたが探している機能です。発生数を\n
と数え、カウントを返します。あなたは、文字列の全体のベクトルを通過する必要がありますので 、と仮定して:あなたは出力に行が新しい行を見つけるたびの数を、それをリファクタリングすることができます
int count_new_lines(string s) {
int count = 0;
for (int i = 0; i < s.size(); i++)
if (s[i] == '\n')
{
count++;
//Output to file the number of the line
}
return count;
}
EDIT(以下のコメントを参照してください)あなたはそのベクトル内の文字列オブジェクトのすべての行番号をカウントする必要があること、これがあなたの持っているものです:
int count_new_lines(vector<string> stringVector) {
int count = 0;
for (int strings = 0; strings < stringVector.size(); strings++)
{
string s = stringVector[strings];
for (int i = 0; i < s.size(); i++)
if (s[i] == '\n')
{
count++;
//Output to file the number of the line
}
}
return count;
}
これは、そのベクトル内のすべての文字列オブジェクトの総行数を返します。あなた。パフォーマンスやその他のメリットを高めるには、ベクターを参照やポインタとして渡すことを検討してください。しかし、これはもう少し高度なトピックです。今後の参考のために
- この機能は大幅に参照とポインタを使用しての代わりに、次の行のようにオブジェクトをコピーするの恩恵を受けるだろう:私たちができ、文字列内の文字の出現回数を確認するには
string s = stringVector[strings];
使用
size_t count = std::count(str.begin(), str.end(), '\n');
#include <algorithm>
#include <string>
#include <iostream>
int main() {
std::string str("hello\nworld\n");
std::cout << std::count(str.begin(), str.end(), '\n');
}
は別の答えにコメントによると、あなたは、文字列のベクトル間で合計数を取得したい:
size_t vec_char_count(const std::vector<std::string>& vec, char c) {
size_t count = 0;
for (const auto& str : vec) {
count += std::count(str.begin(), str.end(), c);
}
return count;
}
ベクトルの文字列を変更したくないので 'for(const auto&str:vec)'を使用します。それ以外は、おそらく私が使うものです。 – Lehu
私はわかりませんあなたが "文字を文字列と比較"することを意味します。 – immibis
ファイル内の単語を見つけて、その単語がどの行にあるかを示すプログラムを作成しようとしていますか? – Olathe
入力ストリームから読み込んだり、 'for(int i = 0; i