Zadanie JPESEL na spoju i operacje na stringach, plikach

0

2 problemy.
1)W zadaniu na spoju kod: JPESEL mamy wczytać pesel(jedno wczytanie, nie można podawać każdej liczby z osobna), jak do tego podejść?
Używam cin>>string; i co dalej? Atoi pozwala mi zmienić wartość na int ale nic mi to nie daje nie mogąc wyłapać do oddzielnych zmiennych liczby pierwszej drugiej itp.

2)Mam plik w pierwszej linijce jest coś takiego
ff ff ff ff ff ff ff ff ff x=12345
Adres pod ff mnie nie interesuje, ale chcę mieć na końcu wyłapane wartości
char znak = x;
int wartosc = 12345;
Jak do tego podejść?

0

Tak na pałę, jeśli założymy że ciąg wejściowy zawsze ma taką postać i nie ma odchyleń...

	string s = "ff ff ff ff ff ff ff ff ff x=12345";
	
	char znak = s[27];
	int wartosc = atoi(s.substr(29).c_str());
0

Co do punktu 1, to string jest tablicą charów, a w c++ starczy od char-a z cyfrą odjąć '0' żeby dostać inta. Generalnie char jest kodem ASCII danego znaku, a cyfry są kolejno zaczynając się właśnie od zera

Co do punktu 2, to z "12345" możesz postąpić identycznie, liczba * 10 i dodajesz do niej następną pozycję - '0'. Starczy znaleźć gdzie się zaczyna i kończy interesujący się fragment linii.

0
Azarien napisał(a):

Tak na pałę, jeśli założymy że ciąg wejściowy zawsze ma taką postać i nie ma odchyleń...

	string s = "ff ff ff ff ff ff ff ff ff x=12345";
	
	char znak = s[27];
	int wartosc = atoi(s.substr(29).c_str());

Działa dziękuje, do peselu wykorzystuje

int wartosc = atoi(p.substr(i,1).c_str());

Mam tylko pytanie jak działa fragment s.substr(29).c_str()? Jakieś źródło gdzie poczytam o użyciu tego?

0

Mam tylko pytanie jak działa fragment s.substr(29).c_str()? Jakieś źródło gdzie poczytam o użyciu tego?

http://www.cplusplus.com/reference/cstdlib/atoi/
http://www.cplusplus.com/reference/string/string/substr/
http://www.cplusplus.com/reference/string/string/c_str/

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