Форум программистов, компьютерный форум CyberForum.ru

Конкатенация строк - C++

Восстановить пароль Регистрация
 
KO42
5 / 5 / 0
Регистрация: 17.04.2011
Сообщений: 54
04.07.2012, 20:25     Конкатенация строк #1
Должно быть консольное приложение. Очень простой вопрос, но сам что-то завис, и немогу найти что хочу. Значит так есть такой кусок кода

C++
1
hf=FindFirstFile("d:\\Auto\\*", &FindFileData);  ///*********************
А хочу так

C++
1
hf=FindFirstFile("d:\\Auto\\   /*сюда вставить переменную типа стринг*/  \\*", &FindFileData);

Ну в общем чтобы можна было по папкам переходить.(Зайти в одну папку , обработать файлы, потом зайти в другую обработать файлы и т.д.)
Может что-то другое посоветуете, ссилки на конструкции кода и т.д.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2012, 20:25     Конкатенация строк
Посмотрите здесь:

C++ конкатенация строк
C++ Конкатенация строк
Конкатенация строк C++
конкатенация строк C++
Конкатенация строк C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
[NovicheK]
19 / 19 / 2
Регистрация: 09.03.2012
Сообщений: 91
04.07.2012, 20:26     Конкатенация строк #2
попробуй заранее до вызова функции строку сделать, а потом вставить
KO42
5 / 5 / 0
Регистрация: 17.04.2011
Сообщений: 54
04.07.2012, 20:37  [ТС]     Конкатенация строк #3
C++
1
2
char *str1 = "d:\\Auto\\";
char *str2 = "BMW\\*";
как тогда сделать *str1 + *str1
чтобы было может так
C++
1
char *str3 = "d:\\Auto\\BMW\\*";
Leomana
58 / 58 / 5
Регистрация: 29.06.2012
Сообщений: 188
04.07.2012, 20:40     Конкатенация строк #4
C++
1
2
3
char *s1[] = "d:\\Auto\\";
char *s2[] = "ваша строка";
char *s3[]= strcat (s1,s2);
KO42
5 / 5 / 0
Регистрация: 17.04.2011
Сообщений: 54
04.07.2012, 20:46  [ТС]     Конкатенация строк #5
Цитата Сообщение от Leomana Посмотреть сообщение
C++
1
2
3
char *s1[] = "d:\\Auto\\";
char *s2[] = "ваша строка";
char *s3[]= strcat (s1,s2);
(((
ERRORs
error C2440: 'initializing' : cannot convert from 'const char [9]' to 'char *[]'
error C2440: 'initializing' : cannot convert from 'const char [28]' to 'char *[]'
error C2664: 'strcat' : cannot convert parameter 1 from 'char *[]' to 'char *'

C++
1
2
3
char *s1[] = "d:\\Auto\\";
char *s2[] = "ПАМЯТКА\\ДРУГОЕ (25.02.12)\\*";
char *s3[] = strcat(s1,s2);
Leomana
58 / 58 / 5
Регистрация: 29.06.2012
Сообщений: 188
04.07.2012, 20:52     Конкатенация строк #6
ой)
C++
1
2
3
char s1[] = "d:\\Auto\\";
char s2[] = "ваша строка";
char *s3= strcat (s1,s2);
KO42
5 / 5 / 0
Регистрация: 17.04.2011
Сообщений: 54
04.07.2012, 21:09  [ТС]     Конкатенация строк #7
))) Спасибо!
Цитата Сообщение от Leomana Посмотреть сообщение
C++
1
2
3
char s1[] = "d:\\Auto\\";
char s2[] = "ваша строка";
char *s3= strcat (s1,s2);
код заработал.
но можна ещё и так (дошол сам):
C++
1
2
3
4
5
6
7
char *s1 = "d:\\Auto\\";
char *s2 = "моя строка";
char *newS = new char;
strcpy(newS,s1);
char *newS2 = new char;
strcpy(newS2,s2);
char *s3 = strcat(newS,newS2);  //но мне верхний вариант больше понравился )))
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.07.2012, 21:12     Конкатенация строк #8
Leomana
C++
1
2
3
4
char s1[] = "aaa";
char s2[] = "bbb";
char* s3 = std::strcat(s1, s2);
std::cout << s3 << std::endl << s1 << std::endl;
Никогда так не делайте.
Leomana
58 / 58 / 5
Регистрация: 29.06.2012
Сообщений: 188
04.07.2012, 21:23     Конкатенация строк #9
Цитата Сообщение от soon Посмотреть сообщение
Leomana
C++
1
2
3
4
char s1[] = "aaa";
char s2[] = "bbb";
char* s3 = std::strcat(s1, s2);
std::cout << s3 << std::endl << s1 << std::endl;
Никогда так не делайте.
а .. да, забыла, что она к s1 добавляет
Dragokas
Автор FAQ
 Аватар для Dragokas
14510 / 6337 / 782
Регистрация: 25.12.2011
Сообщений: 9,866
Записей в блоге: 14
05.07.2012, 01:16     Конкатенация строк #10
Это самый простой вариант - 7 строк?

А так тоже правильно?
C++
1
2
3
4
5
char *s1 = "aaa";
char *s2 = "bbb";
char *newS = new char;
std::strcpy(newS, s1);
std::strcat(newS, s2);
А первая строка равносильна этой:
C++
1
char s1[] = "aaa";
Добавлено через 1 час 24 минуты
Если мне нужно объединить два первых литерала, чтобы из строки "123456" получить "12",
можно ли написать как-то так:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string>
int main () {
std::string str;
str="123456";
std::string dest;
dest=str[0];
char* strcat(char* dest, const char* str[1]);
std::cout<<dest;
return 0; }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2012, 07:09     Конкатенация строк
Еще ссылки по теме:

C++ Конкатенация строк
Конкатенация строк C++
C++ Конкатенация строк

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.07.2012, 07:09     Конкатенация строк #11
А так тоже правильно?
Ни в коем случае. У KO42 тоже неверный код. Вообще, пользуйтесь strncat
Если мне нужно объединить два первых литерала, чтобы из строки "123456" получить "12",
можно ли написать как-то так:
C++
1
2
std::string str("123456789");
std::string str2(str.begin(), ((str.size() < 2) ? (str.end()) : (str.begin() + 2)));
Yandex
Объявления
05.07.2012, 07:09     Конкатенация строк
Ответ Создать тему
Опции темы

Текущее время: 06:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru