Funkcja atoi i konwersja między tablicami

0

Próbuję zrobić program który wczytuje kolejne cyfry liczby binarnej jako char'y do tablicy o nazwie znaki (wczytywanie kończy się podaniem liczby 5), a następnie konwertuje je na int'y za pomocą funkcji atoi, do tablicy o nazwie liczby. Program się kompiluje, ale przy podaniu cyfry 5 się wywala. Z góry dziękuję za pomoc.

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

int main()
{
char znaki[100];
int liczby[100];

//wczytywanie znakow do tablicy znaki
printf("Podaj liczbe binarna a nastepnie cyfre 5:");
for(int i=0; i<100; i++)
    {
        scanf("%c", &znaki[i]);
        if(znaki[i] == '5') break;
    }
//zamiana z funkcją atoi
for(int i=0; i<100; i++){
    liczby[i] = atoi(znaki[i]);
    printf("%d", liczby[i]);
    }

}
0

liczby[i] = atoi(znaki[i]);


I to Ci się skompilowało? `atoi` oczekuje wskaźnika `const char*` do c-stringa, a Ty podajesz wartość `char`. Zresztą do zamiany cyfr na liczby wystarczy proste  `liczby[i] = znaki[i] - '0';`

Druga pętla wypisuje 100 cyfr/liczb, a nie tyle, ile wczytała pętla pierwsza - popraw to.

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