Я пытаюсь создать вход и выход для проверки некоторых функций в K & R и любых их модификациях. Для atoi в разделе 2.7 (без изменений, но для имени) я добавил функцию печати и образец для преобразования. Кажется, что программа работает, за исключением символьной строки (проверяемое значение) появляется как алмаз, независимо от того, что я делаю (т. Е. Независимо от символьной строки, GGGAAAZ как заданной или других записей), а затем целочисленное значение всегда равно нулю , Является ли это проблемой компилятора (и если да, исправления?) Или я что-то пропускаю?Basic C/K & R 2.7/Символ, отображаемый как алмаз, независимо от определения?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char s[] = "GGGAAAZ";
int n;
n = antoi(s);
printf("The char was %c\n", s);
printf("The int is %d \n", n);
return 0;
}
/* atoi: convert s to integer; name changed to antoi because */
int antoi(char s[])
{
int i, n;
n = 0;
for (i = 0; s[i] >= '0' && s[i] <= '0'; ++i)
n = 10 * n + (s[i] - '0');
return n;
}
Алмаз сохраняется, делаю ли я что-то вроде "GGGAAAZ" или определить с [] = 'а', 'б', 'с'
Спасибо!
's [i] <= '0'' -->' s [i] <= '9''. Также 'printf (« char был% c \ n », s);' -> 'printf (« Char был% s \ n », s);' – BLUEPIXY