Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Porównywanie łańcuchów znaków

Ostatnio zmodyfikowano 2016-10-21 19:39
Autor Wiadomość
carlosmay
» 2016-10-21 19:07:06
C/C++
if( tolower( imie[ i ] ) == a ) //linia 14


Bezmyślnie skopiowałem poprzedni fragment. Tam był błąd.
C/C++
if( tolower( imie[ 1024 ] ) == a ) //linia 14
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.
P-152739
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.
P-152740
carlosmay
» 2016-10-21 19:31:16
Widzę, że się starasz. Poprawiłem kod.
Przeanalizuj.
C/C++
#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 );
}
P-152741
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łą.
P-152742
1 « 2 »
Poprzednia strona Strona 2 z 2