Как набрать приведение строки в целое число в C и сохранить его в массиве целых чисел? - PullRequest
1 голос
/ 27 мая 2010

Я хочу знать, как набирать приведение строки в целое число, а не использовать sprintf () в C

Ответы [ 3 ]

5 голосов
/ 27 мая 2010

В Си нет такого понятия, как строковый тип данных. Но к вашему вопросу вы можете использовать int atoi (const char * str) и не забудьте включить

2 голосов
/ 28 мая 2010

C не имеет строк, но у него есть массивы символов (которые мы часто называем строками), такие как:

char someChars[] = "12345";

Вы можете преобразовать (не то же самое, что и приведение типа) содержимое массива символов в int следующим образом:

int result;
sscanf(someChars, "%d", &result);

Или используя atoi:

int result = atoi( someChars );

Типовое литье похоже на то, чтобы взять бутылку кока-колы и наклеить на нее этикетку Pepsi.
Изменение типа похоже на наливание бутылки кока-колы в банку пепси. Может быть, это подойдет.

1 голос
/ 27 мая 2010

Вы не можете преобразовать массив char / const char * в целое число в C, по крайней мере, не таким образом, чтобы получить разумный целочисленный результат [1]. Единственное исключение - если вы используете его для преобразования одного символа в целое число, которое просто расширяет его, если вы посмотрите на битовое представление.

Единственный способ сделать правильные функции преобразования, такие как atoi или sscanf.

[1] Да, я знаю, что вы можете преобразовать указатель (const char *) в целое число, но это преобразует значение указателя, а не значение данных, на которые он указывает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...