Заполните массив int массивом char, полным чисел в C (массив char в массив int) - PullRequest
0 голосов
/ 27 апреля 2011

Массив My Char позволяет пользователю вводить чисто числовую строку, тем самым сохраняя каждую цифру в своем собственном пространстве массива. Мне нужно назначить каждый элемент массива char в соответствующее место в массиве int. Как сохранить фактическую цифру, а не эквивалент ASCII

ех. если я введу 9 в качестве строки, я не хочу 57 (значение ASCII), но цифра 9.

int main()   
{

    int x[256] = {0};
    int y[256] = {0};

    char temp1[256] = {0};
    char temp2[256] = {0};

    char sum[256] = {0};
    printf("Please enter a number: ");
    scanf("%s", &temp1); 

    printf("Please enter second number: ");
    scanf("%s", &temp2);

    for(i=0; i<256; i++)
    {
        x[i] = ((int)temp1[i]);
        y[i] = ((int)temp2[i]);         
    }

Ответы [ 2 ]

2 голосов
/ 27 апреля 2011

Изменить:

    x[i] = ((int)temp1[i]);
    y[i] = ((int)temp2[i]);         

на:

    x[i] = temp1[i] - '0';
    y[i] = temp2[i] - '0';         

Обратите внимание, что вам также необходимо исправить scanf звонки - измените:

printf("Please enter a number: ");
scanf("%s", &temp1); 

printf("Please enter second number: ");
scanf("%s", &temp2);

на:

printf("Please enter a number: ");
scanf("%s", temp1); 

printf("Please enter second number: ");
scanf("%s", temp2);
0 голосов
/ 11 февраля 2016
int main(void) {
int x = 0;
int y = 0 
char input[12] = {0}; --->initialize var input 


scanf("%s", &input[0]);
int ch_len = strlen(input)/sizeof(char); --create length of input[] array
int digit[ch_len];    --->initialize digit which size is how many character in input[] array
fflush(stdin);

while (input[y] != '\0') {
if (isdigit(input[y])) {
    digit[x++] = input[y++]-'0';
    count++;
}
else y++;
}
}
...