Необходимо преобразовать строку в unsigned int
в C. Я попытался с помощью sscanf()
и strtoul()
, но оба из них на вводе отрицательных цифр, как -123
переворачивает их и не сигналы об ошибке.Как преобразовать строку в unsigned int? с
Я имею в виду, что strtoul(-1)
вернет UNSIGNED_INT_MAX - 1
, а не ошибку.
мне нужно что-то, что будет делать так:
"123" - отлично
"-123" - неправильный
"WeWe" - неправильный
"123wew" - неправильно
Параметр 'endptr'' strtoul' будет указывать на первый символ в строке, которая не является частью действительной целочисленной константы без знака; если это не пробел или '0', то вход недействителен. –
Это не хороший дубликат. OP хочет преобразование в * unsigned *. Это не так просто, как кажется. Я думаю, вы можете использовать 'strtoul' и проверить, может ли результат (' unsigned long') вписываться в 'unsigned'. – Bathsheba
Просто добавьте, если вам нужно что-то особенное для ваших потребностей, вы можете развернуть свою собственную функцию. Вы знаете, что большинство функций библиотеки являются универсальными. :) –