Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Oleksa
0 / 0 / 0
Регистрация: 03.12.2012
Сообщений: 8
#1

конкатенация 2х строк? подскажите новичку в с++ - C++

03.12.2012, 22:39. Просмотров 464. Ответов 14
Метки нет (Все метки)

Как получить строку s, являющую собой конкатенацию двух строк s0 и s1?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2012, 22:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос конкатенация 2х строк? подскажите новичку в с++ (C++):

Конкатенация строк - C++
Помогите,пожалуйста,идиоту.Не понимаю как правильно конкатенацию строк написать("сложение" строк) #include <iostream> class...

Конкатенация строк - C++
Частью задания является реализовать функцию strcat. Возникает какая-то ошибка (см.фото). 1.Вы могли бы подсказать в чём ошибка? 2.Не по...

конкатенация строк - C++
Подскажите, почему не компилируется код: std::string ExtractFileName(std::string filename) { if (filename.size() == 0)...

Конкатенация строк - C++
Нужно объединить три строки: "txt/" + i + ".txt" в char* URL. i переменная в цикле. Сделал так: strcpy(URL, "txt/\0"); ...

Конкатенация строк - C++
Разбираю учебный пример - написать класс для работы со строками. Всего два поля: private: int _size; // длина строки, без...

Конкатенация строк - C++
Добрый день. Скажите, плз, как в ц++ соединить в единую строку следующее: myString = argv + i + "тут некоторый текст." argv - ну ясно...

14
(SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
03.12.2012, 22:45 #2
C++
1
2
3
4
5
6
7
8
9
10
#include <cstring>
 
int main()
{
   char * s0 = "C", s1 = "++", s;
   strcat(s, s0);
   strcat(s, s1);
 
  return 0;
}
В интернете куча примеров:
http://www.cplusplus.com/reference/cstring/strcat/
1
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
03.12.2012, 22:52 #3
(SkyNet), в случайный участок памяти же пишите (я про s).
0
(SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
03.12.2012, 23:00 #4
gray_fox, а разве в функции нет динамического выделения памяти, или надо так (Не проверял)

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstring>
 
int main()
{
   char * s0 = "C", s1 = "++", s;
   s = new char[strlen(s0) + strlen(s1)+1];
   strcat(s, s0);
   strcat(s, s1);
 
  delete [] s;
  return 0;
}
0
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
03.12.2012, 23:09 #5
Цитата Сообщение от (SkyNet) Посмотреть сообщение
char * s0 = "C", s1 = "++", s;
поэтому переменные лучше объявлять на отдельных строках
* относится только к s0, а s1 и s имеют тип char
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
03.12.2012, 23:16 #6
(SkyNet), все равно не правильно(смысла нет). Да и тут имеется ввиду контейнер std::string.
0
(SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
03.12.2012, 23:16 #7
ZoRT, спасибо, а то я написал неправильно получаетса.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstring>
 
int main()
{
   char* s0 = "C"; 
   char* s1 = "++";
   char* s;
 
   strcat(s, s0);
   strcat(s, s1);
 
  return 0;
}
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
03.12.2012, 23:18 #8
Цитата Сообщение от gray_fox Посмотреть сообщение
в случайный участок памяти же пишите (я про s).
Даже и не скомпилится.
0
(SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
03.12.2012, 23:18 #9
go, да я сам ими пользуюсь уже не помню Си строки
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
03.12.2012, 23:19 #10
Цитата Сообщение от (SkyNet) Посмотреть сообщение
спасибо, а то я написал неправильно получаетса.
ну не правильно.
0
(SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
03.12.2012, 23:31 #11
Цитата Сообщение от go Посмотреть сообщение
Даже и не скомпилится.
Вот называетса не проверил, думал очень просто

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstring>
#include <iostream.h>
 
int main()
{
   char s0[] = "C";
   char s1[] = "++";
   char s[] = "";
   
   strcat(s0, s1);
   strcat(s, s0);
  
   cout << s << endl;
   cout << s0 << endl;
   return 0;
}
Ну вот так работает, но меняет s0, что не очень желано. Может быть кто то знает как через указатели правильно зделать
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
03.12.2012, 23:40 #12
C++
1
2
3
4
5
6
const char* s0 = "C";
const char* s1 = "++";
char* s = new char[ strlen( s0 ) + strlen( s1 ) + 1 ];
 
strcpy( s, s0 );
strcat( s, s1 );
Только кому нужны эти C-строки, когда есть нормальный std::string. Именно им надо пользоваться в C++.
1
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
03.12.2012, 23:42 #13
Цитата Сообщение от (SkyNet) Посмотреть сообщение
Ну вот так работает,
Не правильно.
0
Venzo
04.12.2012, 20:53
  #14

Не по теме:

Цитата Сообщение от Герц Посмотреть сообщение
Только кому нужны эти C-строки, когда есть нормальный std::string. Именно им надо пользоваться в C++.
преподам

0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
04.12.2012, 21:01 #15
Цитата Сообщение от (SkyNet) Посмотреть сообщение
Ну вот так работает, но меняет s0, что не очень желано.
Так не будет работать.

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Герц Посмотреть сообщение
Только кому нужны эти C-строки, когда есть нормальный std::string. Именно им надо пользоваться в C++.
и вырасти не знающим ничего пингвином, имхо!

0
04.12.2012, 21:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2012, 21:01
Привет! Вот еще темы с ответами:

Конкатенация строк - C++
Здравствуйте, у меня такая проблема. Имеется переменная типа LPCWSTR мне в нее необходимо сохранить другую переменную типа LPCWSTR и...

Конкатенация строк - C++
struct Polya //struct for baza questions { WCHAR Question, var1, var2, var3, var4; WCHAR Answer; }; Polya *Quest = new...

Конкатенация строк - C++
Здраствуйте. Проблема в следующем: (строка 57) нужно прибавить элемент массива типа string к переменной типа string, но при запуске...

Конкатенация строк - C++
Должно быть консольное приложение. Очень простой вопрос, но сам что-то завис, и немогу найти что хочу. Значит так есть такой кусок кода ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru