Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как объединить 3 строки char в одну? 
:(
    Опции темы
SuperProgrammer
Дата 14.7.2015, 13:37 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 5.7.2015

Репутация: нет
Всего: нет



Должно было получиться к примеру "Документ 1.txt был открыт".Не вышло.
Код

char* String1="Документ ";
char* String2=OpenDialog1->FileName;
char* String3=" был открыт";
char* ResultString=String1+String2+String3;

Так не работает,а StrCat соединяет только две


Это сообщение отредактировал(а) SuperProgrammer - 14.7.2015, 13:38
PM MAIL   Вверх
tzirechnoy
Дата 14.7.2015, 13:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Я смотрю, тут нужны курсы "Программирование 101" и "Введение в C++ Builder".

Добавлено через 11 минут и 38 секунд
Ну и, детально:

Цитата
а StrCat соединяет только две


Какой-то детский сад. По-моему, чтобы индуктивно перейти от двух к n не требуется быть программистом. Ну и, в любом случае, любое введение в профессию такие вещи тренирует до уровня автоматизма.

Цитата
char* S...


Основной тип строк в С++ Builder -- AnsiString. Просто в C++, если чо, string. По поводу использования сишных строк по-моему написано в любом введении в C++ -- что в общем можно, но это муторно, и если взваливаешь на себя такую ношу -- то хорошо бы понимать зачем.


Цитата
char* String2=OpenDialog1->FileName;


В прежних бьюлдерах так вообще нельзя было делать -- в смысле -- оно компилировалось, но тупо сохраняло указатель на объект AnsiString в char*. Как сейчас -- не знаю, но метод для получения C string из AnsiString указан в любом введенрии в бьюлдер.

Ну и, примерно каждый второй валяющийся в сети пример работы с OpenDialog -- имеет решэние ровно твоей задачи (оно, кстати, банально и вообще не требует указания типов).


PM MAIL   Вверх
bsa
Дата 15.7.2015, 11:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Код
AnsiString message = "Документ " + OpenDialog1->FileName + " был открыт";

PM   Вверх
SVN74
Дата 16.7.2015, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 5.5.2008
Где: Комсомольск на Дн епре

Репутация: 11
Всего: 18



Цитата(SuperProgrammer @  14.7.2015,  13:37 Найти цитируемый пост)
Так не работает,а StrCat соединяет только две

Можно все соединить к примеру вот так:
Код

//<Turbo C++ 2006>
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
    char total_buff[250];

    int A = 564321;
    char B[] = "Hi it's adds proba";
    char *C = "Who";
    AnsiString D = "VCL text here";
    float E = 54.897;
    char F = 'W';

    int len =
            sprintf( total_buff, "%d %s %s %s +(%.3f %c)", A, B, C, D.c_str(), E, F );
            printf("%s = %d chars\n",total_buff, len);

    system("pause");
    return 0;
}
//---------------------------------------------------------------------------

Вот еще пример конкатенации в BCB:
Код

//<Turbo C++ 2006>
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
    //сокращение "String" подходит для всех BCB
    String A = " First";
    String B = " Second";
    String C = " Three";
    String D = " Four " + IntToStr(4);
    String E = FloatToStr(523.756);
    String F = String(L" Wide String try");

    String X = A + B + C + D + E + F;

    printf("%s\n", X.c_str());

    system("pause");
    return 0;
}
//---------------------------------------------------------------------------


Это сообщение отредактировал(а) SVN74 - 16.7.2015, 12:09
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0782 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.