| Автор |
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); |
|