[C] Stringi a parametry w nich zawarte

Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

[C] Stringi a parametry w nich zawarte

Post autor: miki999 »

Witam,
mam sobie stringa:

Kod: Zaznacz cały

Nazwa parametr1 parametr2
Pytanie:
w jaki najłatwiejszy sposób wyłuskać z tego stringa wartości "parametr1" oraz "parametr2"?

Dodam jeszcze, co jest moim celem:
otrzymuję Instrukcja zmienna1 zmienna2 najpierw szukam Instrukcja ze zbioru instrukcji i wykonuję przypisaną do niej operację z parametrami zmienna1 i zmienna2.

Dla ułatwienia mogę również zmodyfikować otrzymywanego stringa, aby np. przed parametrem był jakiś symbol, np. $:

Kod: Zaznacz cały

Nazwa $parametr1 $parametr2
Myślałem nad badaniem wszystkiego znak po znaku, ale to bez sensu.

Znalazłem też bibliotekę string.h i zastanawiam się, co najlepiej wykorzystać, aby nie robić tego na około.


Będę wdzięczny za pomoc.
wawek91
Użytkownik
Użytkownik
Posty: 795
Rejestracja: 2 cze 2010, o 08:56
Płeć: Mężczyzna
Lokalizacja: Tarnów
Podziękował: 14 razy
Pomógł: 66 razy

[C] Stringi a parametry w nich zawarte

Post autor: wawek91 »

Tzn, bo nie do końca rozumiem. Podaj przykład jak wygląda np taki string, bo nie potrafię sobie tego nawet wyobrazić jak string ma się składać z nazwy i 2 parametrów.
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[C] Stringi a parametry w nich zawarte

Post autor: Althorion »

Tokenizacja stringa -> ... ng/strtok/
Znajdowanie podciągu spójnego -> ... ng/strstr/
Znajdowanie znaku -> http://www.cplusplus.com/reference/clib ... ng/strchr/

To pierwsze będzie chyba najbardziej przydatne.
Awatar użytkownika
Zordon
Użytkownik
Użytkownik
Posty: 4977
Rejestracja: 12 lut 2008, o 21:42
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 75 razy
Pomógł: 910 razy

[C] Stringi a parametry w nich zawarte

Post autor: Zordon »

Nie wiem czy o to chodzi, i w dodatku to jest C++, ale napiszę:

Kod: Zaznacz cały

#include <sstream>


    string s="sagfsdg fdsgdsg dsgdsg";
    stringstream ss(s);
    string a,b,c;
    ss>>a>>b>>c;
    cout<<a<<"
";
    cout<<b<<"
";
    cout<<c<<"
";
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

[C] Stringi a parametry w nich zawarte

Post autor: miki999 »

Dzięki za odp.
bo nie potrafię sobie tego nawet wyobrazić jak string ma się składać z nazwy i 2 parametrów
Np. Move 20 10- i na podstawie tego wykonuję dany podprogram z argumentami "20" i "10".

Althorion, rzeczywiście, to praktycznie rozwiązuje moje problemy.

Tak z ciekawości, co wykonuje 7. linijka kodu u Zordona? Wygląda jak przesunięcia bitowe Chyba że to coś typowego dla C++.
wawek91
Użytkownik
Użytkownik
Posty: 795
Rejestracja: 2 cze 2010, o 08:56
Płeć: Mężczyzna
Lokalizacja: Tarnów
Podziękował: 14 razy
Pomógł: 66 razy

[C] Stringi a parametry w nich zawarte

Post autor: wawek91 »

W C++ << i >> to nie tylko przesunięcia bitowe ale też wczytywanie i zczytywanie ze strumieni wejścia/wyjścia.
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[C] Stringi a parametry w nich zawarte

Post autor: Althorion »

Dokładniej: C++ obsługuje przeciążenie operatorów. Trywializując, klasa „pożycza sobie” jakiś operator i wykorzystuje go do własnych celów. Streamy mają np. przeciążone „<<” i „>>”. Wygodna rzecz (np. konkatenacja stringów z użyciem „+”, a nie jawne wywoływanie odpowiedniej metody) i genialny sposób na zamotanie kodu (przeciążmy sobie takiego „*” na przykład…).
Awatar użytkownika
Zordon
Użytkownik
Użytkownik
Posty: 4977
Rejestracja: 12 lut 2008, o 21:42
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 75 razy
Pomógł: 910 razy

[C] Stringi a parametry w nich zawarte

Post autor: Zordon »

Czy koniecznie musisz używać czystego C? Jeśli nie, to radze czym prędzej się przesiąść na C++.
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

[C] Stringi a parametry w nich zawarte

Post autor: miki999 »

Potrzebne mi to do projektu na mikrokontroler a nie na PC-ta i dlatego jest C.
Teoretycznie mógłbym to wrzucić do nowego projektu na C++, ale chyba szkoda zabawy, skoro aplikacja, na której bazuję, była oryginalnie w C.
kkk
Użytkownik
Użytkownik
Posty: 578
Rejestracja: 2 paź 2007, o 19:48
Płeć: Mężczyzna
Lokalizacja: ww
Podziękował: 59 razy
Pomógł: 35 razy

[C] Stringi a parametry w nich zawarte

Post autor: kkk »

Jeśli możesz podać parametry na starcie programu, to możesz się bawić z:

Kod: Zaznacz cały

int main(int argc, char *argv[]) {
 /* ... */
}
i później ewentualnie parametry konwertować na liczby. Nie wiem jednak czy takie rozwiązanie Ci odpowiada.

Pzdr.
ODPOWIEDZ