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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2010, 12:54   #1
Crab2
Пользователь
 
Регистрация: 12.02.2010
Сообщений: 19
По умолчанию Проблема со строками

Код:
#include <iostream>
#include <string.h>

using namespace std;

int main()
{

  char str[512] ;

  cout << "write string with Probel" << endl ;
  cin >> str ;
// cin >> *str ;(если этот способ то выводится 1 единственный символ, почему?
// cin str[512](здЕСЬ дикий глюк)
/*  этот способ вообще не работает:(
  cout << str << str[512] << *str; либо до пробела либо 1 символ либо ничего
*/
   for ( int i=0 ; i < strlen(str) ; i++) // до пробела
      cout << str[i] ;

}
парюсь над этим ужасом уже несколько часов, а мне всего то нужно чтобы вывелась строчка в которой есть пробелы
Все и сразу-мечта идиота
Crab2 вне форума Ответить с цитированием
Старый 30.03.2010, 13:30   #2
ThisIzGame
Форумчанин
 
Регистрация: 31.08.2009
Сообщений: 161
По умолчанию

вот
строка читается вместе с пробелами

Код:
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;

int main()
{

  char str[512] ;

  cout << "write string with Probel" << endl ;
  cin.get(str,512); 
      cout << str ;

   getch();

}
ThisIzGame вне форума Ответить с цитированием
Старый 30.03.2010, 13:31   #3
yugik
Пользователь
 
Аватар для yugik
 
Регистрация: 04.01.2010
Сообщений: 23
По умолчанию

Вот поропбуй так :

Код:
#include <iostream>
#include <string.h>

using namespace std;

int main()
{

  char str[512] ;

  cout << "write string with Probel" << endl ;
  gets (str);
  puts(str);
}
yugik вне форума Ответить с цитированием
Старый 30.03.2010, 13:36   #4
Crab2
Пользователь
 
Регистрация: 12.02.2010
Сообщений: 19
По умолчанию

Спасибо, но деланье без знания все тки как - то некрасиво, не могли бы вы объяснить смысл функций
cin.get()
gets()
puts()
огромное спасибо
и какие библиотеки нужно подключать
кстати conio.h нету в G++
Все и сразу-мечта идиота

Последний раз редактировалось Crab2; 30.03.2010 в 13:46.
Crab2 вне форума Ответить с цитированием
Старый 30.03.2010, 13:50   #5
ThisIzGame
Форумчанин
 
Регистрация: 31.08.2009
Сообщений: 161
По умолчанию

ну cin.get(str,512) принимает 2 аргумента это str и 512. Первый это как-раз наш массив. Туда куда будет помещена введенная нами строка, а второй (512) это максимальный размер нашего массива. все...
ну а писать
Код:
for(i=0; i<strlen(str); i++)
   cout<<str[i]
необязательно, можно просто вот так
Код:
cout<<str<<endl;
ThisIzGame вне форума Ответить с цитированием
Старый 30.03.2010, 13:52   #6
Crab2
Пользователь
 
Регистрация: 12.02.2010
Сообщений: 19
По умолчанию

это я уже понял всеа первый вариант кода был уже от безысходности написан нужно блин выучить функции
Все и сразу-мечта идиота
Crab2 вне форума Ответить с цитированием
Старый 30.03.2010, 14:01   #7
yugik
Пользователь
 
Аватар для yugik
 
Регистрация: 04.01.2010
Сообщений: 23
По умолчанию

Самые стандартные функции для работы со строками:

Функции работы со строками из бибилиотеки обработки строк.
Большинство прототипов этих функций находится в заголовочном файле string.h.

int getchar(); - Возвращает значение символа (если он есть), который пользователь набрал на клавиатуре. После ввода символа нужно нажать клавишу Enter. Заголовочный файл - stdio.h

int getch(); - Аналогично предыдущему, только символ на экране не отображается. Используется чаще для организации задержки выполнения программы. Заголовочный файл - conio.h

int putchar(int c); - Выводит символ c на экран. В случае успеха возвращает сам символ c, в противном случае - EOF. Заголовочный файл - stdio.h

char *gets(char *s); - Читает символы, включая пробелы и табуляции, до тех пор, пока не встретится символ новой строки, который заменяется нулевым символом. Последовательность прочитанных символов запоминается в области памяти, адресуемой аргументом s. В случае успеха возвращает аргумент s, в случае ошибки - нуль. Заголовочный файл - stdio.h

int puts(const char *s); - Выводит строку, заданную аргументом const char *s. Заголовочный файл - stdio.h

char *strcat(char *dest, const char *scr); - Объединяет исходную строку scr и результирующую строку dest, присоединяя первую к последней. Возвращает dest.

char *strncat(char *dest, const char *scr, int maxlen); - Объединяет maxlen символов исходной строки scr и результирующую строку dest, присоединяя часть первой к последней. Возвращает dest.

char *strchr(const char *s, int c); - Ищет в строке s первое вхождение символа c, начиная с начала строки. В случае успеха возвращает указатель на найденный символ, иначе возвращает нуль.

char *strrchr(const char *s, int c); - Аналогично предыдущему, только поиск осуществляется с конца строки.

int strcmp(const char *s1, const char *s2); - Сравнивает две строки. Возвращает отрицательное значение, если s1<s2; нуль, если s1==s2; положительное значение, если s1>s2. Параметры - указатели на сравниваемые строки.

int stricmp(const char *s1, const char *s2); - Аналогично предыдущему, только сравнение осуществляется без учета регистра символов.

int strncmp(const char *s1, const char *s2, int maxlen); - Аналогично предыдущему, только сравниваются первые maxlen символов.

int strnicmp(const char *s1, const char *s2, int maxlen); - Аналогично предыдущему, только сравниваются первые maxlen символов без учета регистра.

int strcspn(const char *s1, const char *s2); - Возвращает длину максимальной начальной подстроки строки s1, не содержащей символов из второй строки s2.

int strlen(const char *s); - Возвращает длину строки s - количество символов, предшествующих нулевому символу.

char *strlwr(char *s); - Преобразует все прописные (большие) буквы в строчные (малые) в строке s.

char *strupr(char *s); - Преобразует все строчные (малые) буквы в прописные (большие) в строке s.

char *strnset(char *s, int c, int n); - Заполняет строку s символами c. Параметр n задает количество размещаемых символов в строке.

char *strpbrk(const char *s1, const char *s2); - Ищет в строке s1 первое вхождение любого символа из строки s2. Возвращает указатель на первый найденный символ или нуль - если символ не найден.

char *strrev(char *s); - Изменяет порядок следования символов в строке на обратный (кроме завершающего нулевого символа). Функция возвращает строку s.

char *strset(char *s, int c); - Заменяет все символы строки s заданным символом c.

int strspn(const char *s1, const char *s2); - Вычисляет длину максимальной начальной подстроки строки s1, содержащей только символы из строки s2.

char *strstr(const char *s1, const char *s2); - Ищет в строке s1 строку s2. Возвращает адрес первого символа вхождения строки s2. Если строка отсутствует - возвращает нуль.

char *strtok(char *s1, const char *s2); - Делит исходную строку s1 на лексемы (подстроки), разделенные одним или несколькими символами из строки s2.

double atof(const char *s); - Преобразует строку s в число с плавающей точкой типа double. Заголовочный файл - math.h

int atoi(const char *s); - Преобразует строку s в число типа int. Возвращает значение или нуль, если строку преобразовать нельзя. Заголовочный файл - stdlib.h

long atol(const char *s); - Преобразует строку s в число типа long. Возвращает значение или нуль, если строку преобразовать нельзя. Заголовочный файл - stdlib.h

char *itoa(int value, char *s, int radix); - Преобразует значение целого типа value в строку s. Возвращает указатель на результирующую строку. Значение radix - основание системы счисления, используемое при преобразовании (от 2 до 36). Заголовочный файл - stdlib.h
yugik вне форума Ответить с цитированием
Старый 30.03.2010, 15:28   #8
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
#include <iostream>

int main()
{
using namespace std;

string s;
cout << "Enter strung: ";
getline(cin, s);
cout << s;
cin.get();
}
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема со строками :( coNsept Общие вопросы C/C++ 2 20.01.2010 00:31
Проблема со строками таблицы erslgoeirjh Общие вопросы по Java, Java SE, Kotlin 2 26.05.2009 15:22
Запись структуры TList в файл, проблема с длинными строками типа AnsiString Xardas Общие вопросы Delphi 2 24.05.2009 20:18
работа со строками. проблема Slash Общие вопросы Delphi 3 21.06.2007 16:46