Wyszukiwanie

0

Witam, czy jest jakaś metoda, funkcja z bib. Stringów, która pozwala na zapisanie wartości przed znakiem, który został oznaczony jako kluczowy?
Chodzi mi o coś takiego:

W = 7

Szukamy wszystkich znaków które są przed =, czyli w tym wypadku w.

0

Rozwiązań może być kilka. Rzuć się jakimś kodem.
np.

  1. Ładujesz stringa do sstream i pobierasz wszystko do spacji operatorem >>.
  2. Szukasz wystąpienia = metodą find() i kopiujesz wszystko do znalezionej pozycji do nowego stringa.

Tutaj jest zawartość biblioteki std::basic_string

0

Np.
Kod w pliku .txt
keyA = 1
keyB = 2

  1. Znajdź frazę która występuje do znaku = I zapisz ją jako attributes
  2. Znajdź frazę po znaku = I zapisz jako contents (id)
    Punkt 2 umiem wykonać

Potrzebuje to do czytania id przycisków z pliku, gry, może jest inny sposób, jakia ciekawszy.

0
std::string attributes;
char ignored_char;
int contents;
// otwieranie pliku
file >> attributes >> ignored_char >> contents;
0

Np. tak.. szybki test..

#include <iostream>
#include <algorithm>
#include <string>
#include <tuple>

std::tuple<std::string, std::string>
parseString(const std::string * ln) {
    std::string key{};
    std::string value{};

    auto itSeparator = std::find(ln->cbegin(), ln->cend(), '=');

    if(itSeparator != ln->cend() && itSeparator != ln->cend()) {
        key = std::string(ln->cbegin(), itSeparator);
    }

    ++itSeparator;
    if(itSeparator != ln->cend()) {
        value = std::string(itSeparator, ln->cend());
    }

    return std::make_tuple(key, value);
}

int main() {
    std::string line1 = "key1 = 1433";
    std::string line2 = "key2= 133";
    std::string line3 = "key3 =1313";
    std::string line4 = "key4=1554";
    std::string line5 = "=1554";
    std::string line6 = "key6=";
    std::string line7 = "=";

    for(const auto& ln: {
            &line1, &line2, &line3, &line5, &line6, &line7 }) {
        auto strKeyValue = parseString(ln);
        std::cout << "Key: |" << std::get<0>(strKeyValue)
            << "|\tValue: |" << std::get<1>(strKeyValue) << "|\n";
    }
}

Ale jak chcesz być jeszcze bardziej restrykcyjny, stringstream będzie lepszy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1