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

Присвоить новое значение для char - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.88
SoproMaster
 Аватар для SoproMaster
50 / 50 / 1
Регистрация: 12.10.2009
Сообщений: 152
02.05.2011, 09:52     Присвоить новое значение для char #1
Доброго времени суток!
Объявилась не большая проблема:
C++
1
2
3
4
5
char Folder1[256] = "Objects\\Forest\\";
    if (map==0)
        Folder1 = "Objects\\Desert\\";
    else if (map==1)
        Folder1 = "Objects\\Steel\\";
Вроде всё просто, но не тут то было.) Компиллятор выдаёт "невозможно преобразовать "const char [16]" в "char [256]". Объясните, что здесь нужно исправить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Danvern
 Аватар для Danvern
40 / 39 / 3
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
02.05.2011, 10:05     Присвоить новое значение для char #2
потому что так нельзя делать.
надо либо использовать функцию strcpy();
либо присваивать каждому элементу по символу в цикле...
NiTan
Покинул форум
3144 / 1326 / 50
Регистрация: 29.01.2010
Сообщений: 2,888
02.05.2011, 10:32     Присвоить новое значение для char #3
C++
1
2
3
4
5
char Folder1[256] = "Objects\\Forest\\";
        if (map==0)
                strcpy(Folder1,"Objects\\Desert\\");
        else if (map==1)
                strcpy(Folder1,"Objects\\Steel\\");
Добавлено через 1 минуту
Или так, наверное, тоже можно:
C++
1
2
3
4
5
6
char *Folder1=new char[256];
Folder1 = "Objects\\Forest\\";
   if (map==0)
                Folder1 = "Objects\\Desert\\";
        else if (map==1)
                Folder1 = "Objects\\Steel\\";
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
02.05.2011, 11:58     Присвоить новое значение для char #4
Уж если используете C++, то так:
C++
1
2
3
4
5
6
7
8
#include <string>
using std::string;
...
string Folder1 = "Objects\\Forest\\";
if(map==0)
    Folder1 = "Objects\\Desert\\";
else if(map==1)
    Folder1 = "Objects\\Steel\\";
SoproMaster
 Аватар для SoproMaster
50 / 50 / 1
Регистрация: 12.10.2009
Сообщений: 152
02.05.2011, 12:18  [ТС]     Присвоить новое значение для char #5
NiTan, спасибо за первый вариант!) Работает как часы.
Вариант c форматом string я рассматривал, но он не подходит, т.к. нужен именно char. А переводить из формата формат не хочется.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.05.2011, 13:36     Присвоить новое значение для char #6
Цитата Сообщение от NiTan Посмотреть сообщение
Или так, наверное, тоже можно:
C++
1
2
3
4
5
6
char *Folder1=new char[256];
Folder1 = "Objects\\Forest\\";
   if (map==0)
                Folder1 = "Objects\\Desert\\";
        else if (map==1)
                Folder1 = "Objects\\Steel\\";
так нельзя.
Yandex
Объявления
02.05.2011, 13:36     Присвоить новое значение для char
Ответ Создать тему
Опции темы

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