@Heibonna: zamiast fgets polecam używać scanf("%199[^\n]", tab); Czy przed wywołaniem funkcji pobierasz jakiś tekst jeszcze? Jak tak to możliwe że nie wyczysciłeś bufora za pomocą while (getchar()!='\n');
@Heibonna: Nie ma prawa działać: strcmp zwraca int, prócz tego fgets po wpisaniu '0' i wciśnięciu enter -> otrzymujesz '0\n' (znak końca linii) poprawnie: if ( strcmp(const char * str1, const char * str2) ==
Dziękuję panowie! To co miałem za niepoprawne działanie getsa okazało się błędem, o którym pisał @benedek. Otóż byłem przekonany, że strcmp() == 0 gdy stringi są inne (bo w końcu false...), a jest przeciwnie
https://pastebin.com/VmRq18Rf
Prosty kod z jakiegoś powodu pomija funkcję fgets. Tzn Wyswietla
"\nPodaj pelny tytul (0 = wroc) : ", a następnie kończy działanie funkcji (?)
Ma ktoś pomysł o co może chodzić unikając wrzucania całego kodu? ( ͡° ʖ̯ ͡°)
Ale na wikipedii przypisuja do wskaznika result moze bez tego ci kompilator to wysyla w kosmos czy cos jako redundantny kod. Tak se zgaduje :)
char napis[max_n], *result;
for (i = 1; i <=
scanf("%199[^\n]", tab);
Czy przed wywołaniem funkcji pobierasz jakiś tekst jeszcze? Jak tak to możliwe że nie wyczysciłeś bufora za pomocą
while (getchar()!='\n');
źródło: comment_LRrgzFuLSXrwxnKD6qQrnlugJhDC74Zw.jpg
PobierzNie ma prawa działać:
strcmp zwraca int, prócz tego fgets po wpisaniu '0' i wciśnięciu enter -> otrzymujesz '0\n' (znak końca linii)
poprawnie:
if ( strcmp(const char * str1, const char * str2) ==
Dziękuję panowie!
To co miałem za niepoprawne działanie getsa okazało się błędem, o którym pisał @benedek.
Otóż byłem przekonany, że
strcmp() == 0 gdy stringi są inne (bo w końcu false...), a jest przeciwnie