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

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

Войти
Регистрация
Восстановить пароль
 
KO42
5 / 5 / 0
Регистрация: 17.04.2011
Сообщений: 54
#1

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

04.07.2012, 20:25. Просмотров 1133. Ответов 10
Метки нет (Все метки)

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

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

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

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

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

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

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

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

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

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

10
[NovicheK]
19 / 19 / 2
Регистрация: 09.03.2012
Сообщений: 91
04.07.2012, 20:26 #2
попробуй заранее до вызова функции строку сделать, а потом вставить
0
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\\*";
0
Leomana
59 / 59 / 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);
0
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);
0
Leomana
59 / 59 / 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);
1
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);  //но мне верхний вариант больше понравился )))
0
soon
2542 / 1307 / 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;
Никогда так не делайте.
1
Leomana
59 / 59 / 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 добавляет
0
Dragokas
Эксперт WindowsАвтор FAQ
16022 / 6840 / 824
Регистрация: 25.12.2011
Сообщений: 10,601
Записей в блоге: 16
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; }
0
soon
2542 / 1307 / 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)));
0
05.07.2012, 07:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2012, 07:09
Привет! Вот еще темы с ответами:

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

Конкатенация строк - C++
Имеется две строки string1 и string2, мне нужно что бы строка string3 содержала в себе обе, сначало string1, потом string2. Kак это сделать...

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

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


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

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

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