Sprawdzanie warunku w tablicy znaków.

0

Mam ciąg znaków: 986124589830. Chcę sprawdzić, ile jest np. "ósemek" w tym ciągu (chodzi o to by je wypisało). Proszę o poprawienie tego kodu, bo nie pokazuje tego czego oczekuję. Wiem, że to jest proste, ale programowanie to dla mnie nowość, a w szczególności tablice znaków.

 
int main(){
    char tab[] = "986124589830";
    for (int i=0; i<11; i++) {
        if (tab[i]==8) 
            cout << tab[i] << endl;
        }
}
1
if (tab[i] == '8')
0

Mam ciąg znaków: 986124589830. Chcę sprawdzić, ile jest np. "ósemek" w tym ciągu (chodzi o to by je wypisało).

cout << "888" << endl;
0

Jeszcze jedno. Jakbym chciał wymnożyć te elementy tablicy w pętli, to jak to zrobić? Z typami zmiennych jest wtedy pewien problem, tak myślę.

1
atoi() 

i mnożysz normalnie inty
EDIT:
Ew możesz tak:

int num=(int)znak-30; 
2
Niikelion napisał(a):
atoi() 

i mnożysz normalnie inty

EDIT:
Ew możesz tak:

int num=(int)znak-30; 

Nieładnie tak kłamać ;)

http://ideone.com/j6AmuL

Powinieneś napisać:

num=(int)znak-0x30;

A jeszcze lepiej żeby uniknąć takich pomyłek:

num=(int)znak-'0';
0

a jak powinno to wyglądać, gdybym chciał sprawdzić czy w tablicy znajdują się liczby np. 8,3,2?
if ( tab[i]== '8' || '3' || '2') ??

0

To będzie coś takiego if ( tab[i]== '8' ||tab[i]== '3' ||tab[i]== '2')

Generalnie po || i && musisz dawać całe warunki, samo np '3' to zawsze prawda bo jest różne od zera.

0

ok, dzięki

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