-2
Я работал над этим некоторое время, но я продолжаю получать либо {0,0,0,0,0}, либо {2751685, 2751685 и т. Д.} Или {57,58,59,60, и т.д.}String to int array
void getGuess(int guess[], int length) {
char thisGuess[length];
int i=0;
printf("Enter your guess.\n");
scanf("%s", &thisGuess);
for(i=0; i<length; i++) {
printf("the guess = %d\n",(int)thisGuess[i]) ;
guess[i] = (int)(thisGuess)-48;
printf("%d ", guess[i]);
}
}
Я хочу, чтобы ввести строку, 12345, и получить его так
guess[0] = 1
guess[1] = 2
guess[2] = 3
etc
предложения на мой код?
Я подозреваю, что '48' используется для преобразования из цифры' 0' в целое значение '0'. Если это правильно: ** Не используйте ** магические числа! Вы запутываете свой код. Просто используйте _character integer constant_ ''0''. – Olaf
Используйте фактическую длину строки, которую вы получили с помощью scanf, в вашем цикле for, а не в параметре длины ... – Unimportant
'(int) (thisGuess) - 48' должно быть' thisGuess [i] - 48' (или предпочтительно ' 0'', а не '48'). Также вы должны прекратить цикл в конце введенного ввода (не 'length'), и вам нужно каким-то образом предотвратить переполнение буфера, если они печатают больше, чем' length'. –