Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: сишники помогите разобраться

1
  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?
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru