Я пытаюсь прочитать строку целых чисел и преобразовать их в цифры 0-9 внутри кода из представления ascii, поэтому добавление со вторым числом позже будет Полегче. Моя проблема здесь заключается только в том, что моя программа не только конвертирует мои символы (числа), которые я ввел в консоль, но и конец строки, который я пытался исключить из моего условия внутри моей функции convert_ascii_to_decimal. Мой результат дает мне правильные десятичные знаки, но дополнительно 100, которые я не понимаю. Это всегда приводит к тому, что условие «обеспечить» должно быть ложным. Любые идеи, как я могу избавиться от этого? СПАСИБО! (Кроме того, мой профессор хочет «размер ИНТ», чтобы быть параметром функции convert_ascii_to_decimal, которую я не понимаю, зачем.)Получение символа конца строки путем преобразования char в десятичные знаки
#include <stdio.h>
#include <stdlib.h>
#define MAX 5
int read_array(char* number, int size);
int convert_ascii_to_decimal(char* number, int size);
void ensure(int condition, char* message);
int main(void){
char number1[MAX + 1];
int i, r, size1;
r = read_array(number1, MAX);
ensure(r == 0, "Ur number is too long");
size1 = convert_ascii_to_decimal(number1, MAX);
//ensure(size1 != 0, "The number contains something other than digits.\n");
for(i = 0; i <= strlen(number1); i++)
printf("%d", number1[i]);
return 0;
}
int read_array(char* number, int size) {
printf("\nEnter an integer number at a maximum of 5 digits please.\n");
int result = 0;
int count = 0;
char* i = number;
do {
scanf("%c", i);
count++;
} while (*i++ != '\n');
*i = '\0';
if (count > size + 1)
result = 1;
return result;
}
void ensure(int condition, char* message) {
if (!condition) {
printf(message);
exit(EXIT_FAILURE);
}
}
int convert_ascii_to_decimal(char* number, int size) {
int count = 0;
char* i = number;
while(*i != '\0'){
if (*i >= 48 && *i <= 57){
*i -= '0';
count++;
i++;
}
else{
return 0;
break;
}
}
return count;
}
он проверяет, если пользователь ввел правильное количество цифр в консоли. Если его больше 5, он будет жаловаться. Нет. Я хочу преобразовать числа ascii в фактические цифры от 0 до 9, поэтому добавление со вторым номером будет проще позже. –
Извините за это. Я так устал, что сейчас нет смысла для меня :) – zubergu