ACM
Навігація
Теми форуму
Чи знали ви, що... ? (beta)
Теорема Гаусса: За допомогою циркуля та лінійки правильний n-кутник можна побудувати тоді і тільки тоді, коли n=2^k*p[1]*p[2]*...*p[l],де k>=0,а p[1],p[2],...,p[l]-різні прості числа Ферма.
Події
Пн Вт Ср Чт Пт Сб Нд
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Birthday(s):
Перегляд теми
Автор
int <--> string
dector
Користувач
Повідомлень: 14
Зареєстрований: 29.02.08
Опубліковано 18-02-2009 21:36
Розумію, що трохи не туди, але вибачте(
В олімпіадних задачах інколи треба представити число як текстову стрічку. у паскалі є власні вбудовані функції - гарно.
як у с++ панове переводять int -> string.
ну і навпаки string -> int
допоможіть, будь ласка.
Автор
RE: int <--> string
webmaster
Головний Адміністратор
Повідомлень: 1136
Зареєстрований: 17.03.07
Опубліковано 26-02-2009 10:19
Щоб перевести у String:
int a =123 ;
char buf[ 100 ] ;
sprintf ( buf,"%d" , a) ;
string s = buf;
Щоб із String'а:
string s = "123" ;
sscanf ( s.c_str ( ) ,"%d" , &a) ;
Змінив(ла) webmaster , 26-02-2009 11:01
Автор
RE: int <--> string
webmaster
Головний Адміністратор
Повідомлень: 1136
Зареєстрований: 17.03.07
Опубліковано 26-02-2009 10:34
Також можна виводити у довільному форматі (так само як і у printf(...)).
int a =123 ;
double d = 123 .4567 ;
string s = "strings" ;
char buf[ 100 ] ;
sprintf ( buf,"%s = %d / %.2lf" , s.c_str ( ) , a, d) ;
s = buf;
Автор
RE: int <--> string
Ostap
Модератор
Повідомлень: 426
Звідки: ЛНУ, Прикладна, ПМІ-81
Зареєстрований: 03.03.06
Опубліковано 26-02-2009 12:38
А якщо Ви звикли більше до потокового вводу/виводу (cin/cout), то тоді можна використовувати stringstream:
#include <sstream>
using namespace std;
...
int a;
string s;
// int->string
a = 47 ;
ostringstream os;
os << a;
s = os.str ( ) ;
// string->int
s = "74" ;
istringstream is( s) ;
is >> a;
Не помиляється той, хто нічого не робить!
Автор
RE: int <--> string
Ostap
Модератор
Повідомлень: 426
Звідки: ЛНУ, Прикладна, ПМІ-81
Зареєстрований: 03.03.06
Опубліковано 26-02-2009 12:45
Ну і є ще один супершвидкий спосіб:
string ss = "124" ;
int x = atoi ( ss.c_str ( ) ) ;
Є також функція itoa (для перетворення з int до стрічки), але вона трохи складніша. Якщо зацікавить, знайдіть її опис в інтернеті.
Не помиляється той, хто нічого не робить!
Автор
RE: int <--> string
cupidon4uk
Користувач
Повідомлень: 393
Звідки: LNU
Зареєстрований: 02.01.09
Опубліковано 28-02-2010 22:19
А не підкажете, як через прінтф і сканф замутити виведення до N-го знаку після коми?
Автор
RE: int <--> string
webmaster
Головний Адміністратор
Повідомлень: 1136
Зареєстрований: 17.03.07
Опубліковано 28-02-2010 22:48
через сканф не знаю, як замутити виведення
printf("%.4lf", res);
де 4 - це 4 знаки після кому, і воно заокруглює правильно.
тільки може бути проблема, якщо res дуже мале менше нуля
double res = -1e-8;
printf("%.3lf", res);
Перейти на форум:
Робота сайту
Тестувалка
Стаття: Шлях до перемоги
Стаття: Львів’яни взяли "золото". Газета "Каменяр".
Обговорення новин
Статті Михайла Медведєва
Обговорення статтей
TCO 2007
Корисна інформація
SRM
TCHS SRM
Інші конкурси
TCCC 2007
TCO 2008
TCO 2009
TCO
acm.timus.ru
acm.uva.es
acm.tju.edu.cn
acm.lviv.ua
ttb.by
Засідання
Задачі
LNU Practice Session '08
Онсайт змагання
Онлайн змагання
Тренування
Зимові збори в Петрозаводську - 2008
ACM ICPC World Finals 2008
Всеукраїнська олімпіада школярів 2008
KPI-Open
Google Code Jam 2008
ІІІ етап Всеукраїнської учнівської олімпіади з інформатики 2009 року
ACM ICPC World Finals
Всеукраїнська учнівська олімпіада з інформатики 2010
Всеукраїнська учнівська олімпіада з інформатики 2011
Рейтинг "Найкоротший код"
Google Code Jam
ACM SouthEastern European Region
Всеукраїнська учнівська олімпіада з інформатики 2012
South-Eastern European Programming Contest
DE:CODED
Про глобальні питання
Теревені
Про АСМ
Гумор
Міні-чат
Зараз на сайті
Гостей: 4
На сайті немає зареєстрованних користувачів
Користувачів: 5,103
новачок:
NataEvgten