Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу Соединение строки и строки?
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
FIREDOG FIREDOG вне форума
proger c++
 
Аватар для FIREDOG
 
Сообщений: 47
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 20.10.2011
Question Соединение строки и строки? - 05.11.2011, 14:42

КАк соединить строку и строку ?
Ответить с цитированием
  (#2 (permalink)) Старый
Odin_KG Odin_KG вне форума
Member
 
Сообщений: 956
Сказал(а) спасибо: 0
Поблагодарили 17 раз(а) в 16 сообщениях
Регистрация: 28.01.2007
По умолчанию 05.11.2011, 21:57

Смотря какого типа строка. Если строка, закодированная как 1 байт = 1 символ, то такая строка должна заканчиваться на 0. Берете первую строку, вычисляете её длину len1, затем берете вторую строку и тоже вычисляете длину len2. Выделяете память размером len1+len2+1 и копируете в эту память сначала первую строку, а затем вторую, а в конце пишите 0, который будет признаком окончания строки.
Ответить с цитированием
  (#3 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 06.11.2011, 21:56

Хых. Да нет ничего проще :-)
cpp Код:
string s1 = "Мама мыла";
string s2 = " раму";

string s = s1 + s2;  // s == "Мама мыла раму"
Ответить с цитированием
  (#4 (permalink)) Старый
AD AD вне форума
Member
 
Сообщений: 575
Сказал(а) спасибо: 7
Поблагодарили 3 раз(а) в 3 сообщениях
Регистрация: 15.07.2009
По умолчанию 07.11.2011, 14:21

Цитата:
Сообщение от Влад Посмотреть сообщение
Хых. Да нет ничего проще :-)
cpp Код:
string s1 = "Мама мыла";
string s2 = " раму";

string s = s1 + s2;  // s == "Мама мыла раму"
Фи. Я бы так сделал:
cpp Код:
string s1("Мама мыла");
string s2(" раму");

string s(s1 + s2);  // s == "Мама мыла раму"

Саттер, по крайней мере, рекомендует делать именно так! )))
Ответить с цитированием
  (#5 (permalink)) Старый
D_K D_K вне форума
Member
 
Сообщений: 1,681
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.11.2005
По умолчанию 07.11.2011, 15:10

Цитата:
Сообщение от AD_ Посмотреть сообщение
Фи. Я бы так сделал:
cpp Код:
string s1("Мама мыла");
string s2(" раму");

string s(s1 + s2);  // s == "Мама мыла раму"
Тогда уж:
cpp Код:
const string s1("Мама мыла");
const string s2(" раму");

const string s(s1 + s2);  // s == "Мама мыла раму"

А вообще с кодом Влада нет НИКАКОЙ разницы.
Посмотри внимательнее, что там Саттер пишет...
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Odin_KG Odin_KG вне форума
Member
 
Сообщений: 956
Сказал(а) спасибо: 0
Поблагодарили 17 раз(а) в 16 сообщениях
Регистрация: 28.01.2007
По умолчанию 07.11.2011, 15:27

Ну, через классы нечестно :-).
Ответить с цитированием
  (#7 (permalink)) Старый
AcerExtensa AcerExtensa вне форума
Member
 
Сообщений: 79
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.11.2007
По умолчанию 14.11.2011, 13:38

cpp Код:
char * join(const char * str1, const char * str2)
{
    size_t str_len = (strlen(str1)+strlen(str2)+1)*sizeof(char);
    char * str3 = new char[str_len];
    memset(str3,0,str_len);

    strcpy(str3,str1);
    strcat(str3,str2);
    return str3;
}

cpp Код:
char * join(const char * str1, const char * str2)
{
    size_t str_len = (strlen(str1)+strlen(str2)+1)*sizeof(char);
    char * str3 = new char[str_len];

    sprintf(str3,"%s%s",str1,str2);
    return str3;
}
Ответить с цитированием
  (#8 (permalink)) Старый
Сыроежка Сыроежка вне форума
Member
 
Сообщений: 137
Сказал(а) спасибо: 0
Поблагодарили 17 раз(а) в 17 сообщениях
Регистрация: 16.11.2011
По умолчанию 16.11.2011, 20:46

Цитата:
Сообщение от FIREDOG Посмотреть сообщение
КАк соединить строку и строку ?
Во-первых, надо сначала выяснить, что вы имеете в виду под "строкой"!

Например, в языке С под строками имеются в виду символьные массивы. В С++ под строками имеется в виду шаблонный класс std::string. В MFC для строк имеется свой класс.

Более того, даже если речь идет о символьных массивах языка С, то имеет место разница в написании программы в зависимости от того, пишите вы на С или на С++!
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
stringstream - соединение строки и числа biomicri С/С++ 1 15.10.2011 02:26
Строки imported_Rick Prolog 0 29.05.2011 16:03
строки Стася Pascal 0 09.05.2011 13:31
Строки Mr.Been Pascal 4 07.05.2011 17:07
Строки Aktor1992 Pascal 2 13.04.2011 11:25
Добавить в конец первой строки, последние n2-n1 слов второй строки gika111 Вопросы начинающих программистов 1 20.01.2010 16:41
Строки fredwriter Pascal 8 25.11.2009 04:24
Строки fredwriter Pascal 14 17.11.2009 13:37
Строки. Добавление части строки внутрь другой frikorsar Prolog 2 21.01.2009 19:58
Строки imported_W_M Prolog 5 03.11.2008 15:04
Строки kuller Prolog 9 22.10.2008 19:35
Имеются две строки CString, можно ли реализовать поиск части первой строки во второй Anonymous Visual C++ 4 23.05.2003 16:34



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов