[C] Porównywanie łańcuchów znaków
Ostatnio zmodyfikowano 2016-10-21 19:39
carlosmay |
» 2016-10-21 19:07:06 if( tolower( imie[ i ] ) == a )
Bezmyślnie skopiowałem poprzedni fragment. Tam był błąd. if( tolower( imie[ 1024 ] ) == a )
|
Tutaj porównujesz 'a' do elementu poza tablicą. edit: printf( "liczba a to %d\n", & licznik ); ten fragment powinien być po wyjściu z pętli, a o znaku & już pisałem. |
|
newbie01 Temat założony przez niniejszego użytkownika |
» 2016-10-21 19:24:35 Usunąłem ampersand, próbowałem zapisać a w apostrofach oraz bez, lecz wynik działania programu ciągle taki sam j.w. |
|
carlosmay |
» 2016-10-21 19:31:16 Widzę, że się starasz. Poprawiłem kod. Przeanalizuj. #include <stdio.h> #include <ctype.h> int main() { int i = 0; int licznik = 0; char imie[ 1024 ]; char a = 'a'; printf( "Podaj imie: " ); fgets( imie, 1024, stdin ); for( int i = 0; imie[ i ] != '\0'; i++ ) { if( tolower( imie[ i ] ) == a ) { licznik += 1; } } printf( "liczba a to %d\n", licznik ); return( 0 ); } |
|
newbie01 Temat założony przez niniejszego użytkownika |
» 2016-10-21 19:39:48 Dzięki wielkie! Nie wiem czy dobrze rozumiem, ale teraz widzę to tak że: pętla for tak jak w założeniu przeskakuje literka po literce, i po każdym takim "skoku" if porównuje czy dana komórka == 'a', jeśli tak to licznik +1.
edit: if dodatkowo sprawdza czy literka a jest duża czy mała, jeśli duża to zmienia ją na małą. |
|
1 « 2 » |