Объединение двух строк

программирование C++ cpp String char

Дано:
char* A="aaa";
char* B="bbb";
Хочу получить aaabbb.
Условие:
Не работает strcat, среда разработки: VS 2010

Примечание:
Вот бы php
$C = $A.$B
или js
C = A+B
аналогичные примеры и в других языках:)

Примечание:
Прекрасно, столько вариантов и все разные ... какой лучше?

Примечание:
VS 2010 орёт на всё что может.

Примечание:
В данный момент на cpp, нет времени проверить.
Ответы:
Немного извращенно, но все же:
char *A="aaa",*B="bbb",*pa;
pa=A+strlen(A);
strcpy(pa,B);
memcpy в помощь в таком случае.
Аллокируем память размером с A+B и копируем туда строки, не забывая про завершающие нули.
Что-то вроде такого:
char *C = new char[sizeof(A) + sizeof(B) - 1];
memcpy(C, A, sizeof(A) - 1);
memcpy(C+sizeof(A) - 1, B, sizeof(B));
char C[strlen(A)+strlen(B)+1]; //c99
strcpy(C, A);
strcat(C, B);
// либо так
sprintf(C, "%s%s", A, B);
а такой вариант
char* A="aaa";
char* B="bbb";
void main()
{
int a=strlen(A)+strlen(B);
char* C=new char(a);
for(int i=0;i<a;i++)
{
if(i<strlen(A))
C[i]=A[i];
if(i>=strlen(A))
C[i]=B[i-strlen(A)];
 cout<<C[i];
 }
> Вот бы php
Тогда нужно уточнить на каком ЯП вы пишете, если на C++, то есть std::string с перегруженным оператором + для конкатенции.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.