| 1 Vasea, 13 июля 2010 г. 14:10:05 | |
|
Ispolizyi basic_string<char> str;
|
|
|
| 2 Нигматуллин Нияз Габдуллазянович [СПбГУ ИТМО], 12 июля 2010 г. 20:15:52 | |
|
так scanf тоже до первого пробела
|
|
|
| 3 Колесов Михаил, 11 июля 2010 г. 15:55:52 | |
Если прочитать строку целиком (включая все пробелы), то вот очередной способ #include <iostream> using namespace std; int main() { string my_string; getline(cin,my_string); return 0; }
|
|
|
| 4 Ким Вячеслав Олегович, 10 июля 2010 г. 21:31:46 | |
gets(mystring); тоже не плохой вариант
|
|
|
| 5 Колесов Михаил, 09 июля 2010 г. 12:12:33 | |
касательно предыдущего сообщения... там ошибка... вместо () нужно [] а в конце программы нужно освободить память delete [] имя_указателя http://server.179.ru/tasks/cpp/ - здесь вообще много полезно, почти по каждой нужно теме))) почитайте)))
|
|
|
| 6 Колесов Михаил, 09 июля 2010 г. 12:08:54 | |
string s; cin >> s; будет прочитано до первого пробела если я не ошибаюсь
|
|
|
| 7 Нигматуллин Нияз Габдуллазянович [СПбГУ ИТМО], 09 июля 2010 г. 11:23:10 | |
char * s = new char[101]; scanf("%s", s); заметим что '&' перед названием переменной в аргументах scanf не нужен, так как s - и так указатель. в случае если объявлять так: char s[101]; тоже не нужен, так как и здесь тоже указатель. string считать можно с помощью потоков(stdin, stdout и stderr в библиотеке iostream, а для считывания из файла можно использовать fstream) string s; cin >> s;
|
|
|
| 8 Канапля Валерий, 08 июля 2010 г. 16:27:07 | |
всем спасибо разобрался=)
|
|
|
| 9 Колесов Михаил, 08 июля 2010 г. 11:12:50 | |
Примерно так. char *s; s = new char(101); и работаешь с памятью через указатель
|
|
|
| 10 Колесов Михаил, 08 июля 2010 г. 11:01:30 | |
"выполняется коректно а если заменить char s[100] на char *s выскакивает ошибка? " Если ты так заменишь, то ты просто создашь указатель, который ни на что не указывает... Тебе после такого объявления нужно область памяти выделить. Сорри если не по теме или чего-то не понял.
|
|
|
| 11 Гость, 05 июля 2010 г. 17:22:26 | |
|
Надо хотя бы знать разницу между указателями и переменными/массивами
|
|
|
| 12 dAFTc0d3r Делюкин Максим, 05 июля 2010 г. 9:13:51 | |
Да, нужно определить массив символов. И не забывай что чтобы считать строку в 100 символов тебе потребуется массив длины 101, так как в конце будет \0.
|
|
|
| 13 Канапля Валерий, 05 июля 2010 г. 3:54:43 | |
|
то есть в си нельзя считать char *s?надо что бы был именно массив
|
|
|
| 14 dAFTc0d3r Делюкин Максим, 05 июля 2010 г. 0:27:44 | |
char _s[101]; string s; ... scanf("%s", &_s); s = _s; ... printf("%s", s.c_str()); 100% где-то ошибся, но как-то так. :)
|
|
|
| 15 Канапля Валерий, 05 июля 2010 г. 0:18:29 | |
почему char s[100]; scanf("%s",&s); long i=strlen(s); выполняется коректно а если заменить char s[100] на char *s выскакивает ошибка?
|
|
|
| 16 Канапля Валерий, 04 июля 2010 г. 22:31:20 | |
|
а как тогда string считать?
|
|
|
| 17 Собиров Иброхим, 04 июля 2010 г. 22:28:34 | |
"как считать строку string с помощью scanf?" невозможно "что лучше использовать char *s; или же string s;?" char быстрее, string удобнее выбирай!
|
|
|
| 18 Канапля Валерий, 04 июля 2010 г. 21:58:24 | |
|
еще вопрос что лучше использовать char *s; или же string s;?
|
|
|
| 19 Канапля Валерий, 04 июля 2010 г. 21:53:34 | |
помогите разобраться со строками в с++. как считать строку string с помощью scanf?
|
|
|