следующий предложенный код:
- безупречная компиляция
- выполняет желаемую функциональность
- обратите внимание на исправления нескольких операторов
- обратите внимание на добавлениеиз заголовочных файлов
- обратите внимание на добавление функции:
main()
- в программировании, количество деталей
и теперь предлагаемый код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main( void )
{
char* test = " 4396";
char *ptr;
long result = strtol(test,&ptr,10); // note the change from `int` to `long`
printf("%ld\n",result); // note the change from'%d' to '%ld'
printf("%zu\n",strlen(ptr)); // note the change from '%d' to '%zu'
}
вывод предлагаемого кода:
4396
0
Обратите внимание, что вторым выводом является 0, поскольку strlen()
не считает завершающий байт NUL и ptr
указывает на байт NUL