Как вывести в консоль строчки начинающиеся только с 111?

Есть файл test.txt. В нем находится

"1234567890"
"1112345678"
"1234567890"
"1234567890"
"1118765432"
"ABCABCABCA"
"AAAABCABCA"
"AAADAADBCA"

Как вывести только те строчки в консоль где в начале есть 111XXXXXXX? В нашем случае вывести должно вывести

1112345678 1118765432


Ответы (2 шт):

Автор решения: Виктор

Просто делаем так:

std::string str;

// Тут загружаем строку из файла

if (3+7 == str.length() && str.rfind("111",0) == 0 ) {
    // выводим строку
}

Разумеется, меняем 3+7 в зависимости от маски. Формируем в общем...

Итоговый код для изучения:

#include <iostream>  
#include <string>                                                                                                                                                                                                                       
#include <fstream>

using namespace std;
int main(int argc, char *argv[]) {
    
    string line;
    cout << "Found: ";
    int count = 0;
    string mask_str = "111";
    int mask_total_chars = 3 + 7;

    ifstream infile("data.txt"); // Открываем файл

    while (getline(infile, line)) // читаем строку, пока не конец файла
    {
        // Длина строки и начало совпадает с маской?
        if (mask_total_chars == line.length() && line.rfind(mask_str,0) == 0 ) {
            cout << line << " ";  // Да, вывели на экран
            count++; // Количество найденых элементов
        }
    }
    cout << "[" << count << " items]" << endl;
    return 0;
}

Данные в файле data.txt

Вывод: Found: 1112345678 1118765432 [2 items]

Ответ для @Mikhailo "как насчет строки 1112211133?":

  string str ("1112211133");
  string key ("111");
  if (0==str.rfind(key,0))
    cout << str << '\n';
  else
    cout << 'Not Found' << '\n';

Вывод: 1112211133

→ Ссылка
Автор решения: Mikhailo

Варианты для

строки С:

const char * s = "1112352327";
if (strncmp(s,"111",3) == 0) // Строка начинается с 111

строки C++

string s = "11152345646";

if (s.starts_with("111"))    // Строка начинается с 111

if (s.substr(0,3) == "111")  // Строка начинается с 111 

if (s.find("111") == 0)       // Строка начинается с 111
→ Ссылка