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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
psdmaster
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 44
02.04.2013, 20:23     Конкатенация строк #1
Нужно объединить три строки: "txt/" + i + ".txt" в char* URL. i переменная в цикле.

Сделал так:
C++
1
2
3
strcpy(URL, "txt/\0");
strcat(URL, (char*)i);
strcat(URL, ".txt\0");
Ошибка:
d:\c++\fonbettoto\fonbettoto\fonbettoto.cpp(271): error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

Добавил:
C++
1
#define _CRT_SECURE_NO_WARNINGS
Ошибка:
1>d:\c++\fonbettoto\fonbettoto\fonbettoto.cpp(1): warning C4603: '_CRT_SECURE_NO_WARNINGS' : macro is not defined or definition is different after precompiled header use
1> Add macro to precompiled header instead of defining here
1> d:\c++\fonbettoto\fonbettoto\fonbettoto.cpp(4) : use of precompiled header
1>d:\c++\fonbettoto\fonbettoto\fonbettoto.cpp(271): error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

Есть идеи? Можно принципиально код поменять.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2013, 20:23     Конкатенация строк
Посмотрите здесь:

C++ Конкатенация строк
C++ конкатенация строк
C++ Конкатенация строк
конкатенация строк C++
Конкатенация строк C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
03.04.2013, 00:27     Конкатенация строк #21
Цитата Сообщение от Програмер_80лвл Посмотреть сообщение
char *t=new char[z.size()];
* * // i ->
* * for(int i=0;i<10;i++)
* * {
* * * * string z;
* * * * t=(char*)z.c_str();
* * * * itoa(i,t,10);
* * }
что вы за хрень несете?!? вы выделяете память исходя из размера не инициализированной переменной, да что там инициализированной, вы даже не объявили z а уже

Цитата Сообщение от Програмер_80лвл Посмотреть сообщение
char *t=new char[z.size()];
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Програмер_80лвл
15 / 15 / 1
Регистрация: 17.10.2012
Сообщений: 96
Записей в блоге: 1
03.04.2013, 00:31     Конкатенация строк #22
Цитата Сообщение от psdmaster Посмотреть сообщение
Выводит шляпу какую-то:
для того тчоб выводило не шляпу пиши setlocale()
я уже непомню какие параметры может по гуглиш или используй
_cputws(L"TEXT");
тож шняга полезная =)

Добавлено через 1 минуту
Цитата Сообщение от yoghurt92 Посмотреть сообщение
* * * * string z;
А Это что ! Такое !?*
Мммм думаю Вам нада Пыль с экрана протереть...
или просто выспатся
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
03.04.2013, 00:33     Конкатенация строк #23
Цитата Сообщение от Програмер_80лвл Посмотреть сообщение
string URL;
string Txt="txt/";
* * string txt=".txt";
* * //для преобразование из const char* в char* тебе понадобится
* * char *t=new char[z.size()];
* * // i ->
* * for(int i=0;i<10;i++)
* * {
* * * * string z;
* * * * t=(char*)z.c_str();
* * * * itoa(i,t,10);
* * }
* * URL.append(Txt.c_str());
* * URL.append(t);
* * URL.append(txt);
пыль со своего экрана вытри, снчала смотри что пишешь, если ты шлак несешь.
Програмер_80лвл
15 / 15 / 1
Регистрация: 17.10.2012
Сообщений: 96
Записей в блоге: 1
03.04.2013, 00:34     Конкатенация строк #24
Цитата Сообщение от yoghurt92 Посмотреть сообщение
пыль со своего экрана вытри, снчала смотри что пишешь, если ты шлак несешь.
Эмм Сори я просто ее сначала создал в цикле потом перед отправкой перенес=)
Извините* Моя ошибка=)
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
03.04.2013, 00:35     Конкатенация строк #25
Програмер_80лвл, да ты что? а я то думал моя... браво.
psdmaster
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 44
03.04.2013, 00:36  [ТС]     Конкатенация строк #26
ребята, давайте без батлов.
Програмер_80лвл
15 / 15 / 1
Регистрация: 17.10.2012
Сообщений: 96
Записей в блоге: 1
03.04.2013, 00:38     Конкатенация строк #27
yoghurt92, Ээ а может хватит Тролить того человека который помог другому незнающему человеку...
psdmaster
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 44
03.04.2013, 01:11  [ТС]     Конкатенация строк #28
Програмер_80лвл,

Итак вот что получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    string str, URL;
    char *z = new char[3]; 
 
    for(int i = 1; i <= 3; ++i)
    {
        itoa(i, z, 10);
        
        URL = "txt/";
        URL = URL + z + ".txt";
        
        ifstream fin(URL);
        cout << URL << endl;
        
        getline(fin, str, '\n');
 
        cout << str << endl;
        fin.close();
    }
 
    getchar();
 
    return 0;
}
Ошибка:
error C4996: 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _itoa. See online help for details.
1> d:\microsoft visual studio 11.0\vc\include\stdlib.h(909) : see declaration of 'itoa'
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
03.04.2013, 09:06     Конкатенация строк #29
psdmaster, используй

C++
1
_itoa
Програмер_80лвл
15 / 15 / 1
Регистрация: 17.10.2012
Сообщений: 96
Записей в блоге: 1
06.04.2013, 03:01     Конкатенация строк #30
Цитата Сообщение от psdmaster Посмотреть сообщение
_itoa.
это не ошибка а предупкиждение потомучто потоко не безопасно но так как утебя нет потоков ты можеш использовать...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2013, 03:26     Конкатенация строк
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
06.04.2013, 03:26     Конкатенация строк #31
Цитата Сообщение от Програмер_80лвл Посмотреть сообщение
это не ошибка а предупкиждение потомучто потоко не безопасно но так как утебя нет потоков ты можеш использовать...
error в VS всё же ошибка, которая не позволит скомпилировать, предупреждение, это warning - он позволил бы
и вообще в любом приложении по дефолту есть хотя бы один поток main
да, это именно поток, процесс, который его исполняеет несколько глубже сидит и отвечает за раздачу системный ресурсов, а функция main - это поток, так что грубо говорить
утебя нет потоков ты можеш использовать
Yandex
Объявления
06.04.2013, 03:26     Конкатенация строк
Ответ Создать тему
Опции темы

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