Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2011, 23:34   #1
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
Вопрос из char в int

как перевести строку типа char переменную int.

нугуглил в инете
Цитата:
#include <stdio.h>

int main()
{

char a[] = "12345";
int Num=0;
for(int i=0;a[i];i++)
{
Num=Num*10 + a[i]-0x30;
printf("%d",Num);
}
getchar();
return 0;
}
выводит что-то не то, где ошибка
Это ещё не конец и даже не начало конца, это возможно только конец начала.
pufystyj вне форума Ответить с цитированием
Старый 03.04.2011, 23:46   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://lord-n.narod.ru/download/book.../13/sscanf.htm
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.04.2011, 23:48   #3
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

убери Num*10

есть еще функция atoi
counter вне форума Ответить с цитированием
Старый 03.04.2011, 23:52   #4
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Конечно, выводит же каждый раз Num, причем выводит подряд (т.е. не перенося на следующую строку (printf("%d\n",Num))

Код:
#include <stdio.h>

int main()
{

char a[] = "12345";
int Num=0;
for(int i=0;a[i];i++)
{
Num=Num*10 + a[i]-0x30;
}
printf("%d",Num);
getchar();
return 0;
}
Либо так:
Код:
#include <stdio.h>

int main()
{

char a[] = "12345";
int Num=0;
for(int i=0;a[i];i++)
{
Num=Num*10 + a[i]-0x30;
printf("%d\n",Num);
}
getchar();
return 0;
}
zotox вне форума Ответить с цитированием
Старый 03.04.2011, 23:55   #5
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
Смущение

всем спасибо, разобрался
Цитата:
Сообщение от zotox Посмотреть сообщение
Конечно, выводит же каждый раз Num, причем выводит подряд (т.е. не перенося на следующую строку (printf("%d\n",Num))

Код:
#include <stdio.h>

int main()
{

char a[] = "12345";
int Num=0;
for(int i=0;a[i];i++)
{
Num=Num*10 + a[i]-0x30;
}
printf("%d",Num);
getchar();
return 0;
}
Либо так:
Код:
#include <stdio.h>

int main()
{

char a[] = "12345";
int Num=0;
for(int i=0;a[i];i++)
{
Num=Num*10 + a[i]-0x30;
printf("%d\n",Num);
}
getchar();
return 0;
}
да, в этом и была промлема, чет не заметил
Это ещё не конец и даже не начало конца, это возможно только конец начала.
pufystyj вне форума Ответить с цитированием
Старый 04.04.2011, 00:10   #6
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию

Цитата:
Сообщение от counter Посмотреть сообщение
убери Num*10

есть еще функция atoi
а что в чи есть atoi??? О_о
Это ещё не конец и даже не начало конца, это возможно только конец начала.
pufystyj вне форума Ответить с цитированием
Старый 04.04.2011, 00:28   #7
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
Сообщение от pufystyj Посмотреть сообщение
а что в чи есть atoi??? О_о
по ссылке Пепла можно было бы пройти и поискать
http://lord-n.narod.ru/download/book..._C/18/atoi.htm
counter вне форума Ответить с цитированием
Старый 04.04.2011, 01:18   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

atoi есть во многих версиях С, хотя в стандарт как говорят не входит.
но я дал ссылку на замену atoi, причем 100% стандартную.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.04.2011, 14:49   #9
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
atoi есть во многих версиях С, хотя в стандарт как говорят не входит.
Где же это не входит? Как раз atoi - вполне стандартная функция, и, как утверждает Википедия, входит в стандарт C89. А вот itoa действительно в стандарт не входит, вместо нее, для пущей переносимости, лучше использовать sprintf (ну или строковые потоки).
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из int в char 3dg_fan Помощь студентам 2 26.12.2010 00:16
из char в int AxenicX Помощь студентам 2 16.11.2009 22:31
из char в int llin Общие вопросы C/C++ 13 11.07.2008 06:51
из char в int?? Mika Общие вопросы C/C++ 4 20.06.2008 15:18
Есть таблица - В ней три поля int, char, char нужно чтобы данные заносились в таблицу Mysql Muahahaha PHP 8 27.03.2008 11:17