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

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

Войти
Регистрация
Восстановить пароль
 
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
#1

string => char[] - C++

28.11.2013, 18:34. Просмотров 446. Ответов 17
Метки нет (Все метки)

Ничего не выходит из найденного в интернете(( подскажите как на выходе получить такой [] чар
C++
1
2
3
std::string str = "vasya.exe";
char buf[] = str; // ? error
char buf[] = "vasya.exe" // работает... да только так не нужно(((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 18:34     string => char[]
Посмотрите здесь:

из char* в string - C++
#include <stdio.h> #include <iostream.h> #include <string.h> #include <windows.h> int a, e, n, i ; char *astr, *estr,...

String в char - C++
Здравствуйте. Нашла код перестановки без повторений в интернете. Нужна программа без использования шаблонов,но что-то не получается...

Из char в string - C++
1.У меня есть char X; и в него я записываю "Hello World" как мне его переписать в string XX, чтоб там было тоже "Hello World"??? ...

string into char [] - C++
Как преобразовать string s = "ololo"; в char b;

Char to string - C++
как массив типа Char перевести в string ?

Из string в char - C++
Как преобразовать тип string в тип char?? Просто, когда я пишу char s; sring text = "aaaaa"; s = text.c_str(); то выводит...

Из char[] в string - C++
Есть массив char ch и переменная string str, необходимо второй элемент массива ch, т.е. ch передать в переменную str (типа str = ch). Как...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,054
Завершенные тесты: 1
28.11.2013, 18:35     string => char[] #2
C++
1
const char* buf = str.c_str();
только менять его содержимое нельзя, если надо менять то придется копировать через strcpy()
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
28.11.2013, 18:45  [ТС]     string => char[] #3
Так и знал что кто-нибудь подскажет этот способ...((
Дело в том что он мне не подходит, не подходит ни const char* ни char * а я работаю с одной из кастомных dll библиотек которая в качестве аргумента принимает именно char [] и дальше делает с ним расчет, а все конверты в переменную с указателями там не принимаются!
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
28.11.2013, 18:46     string => char[] #4
beats, ручками, ручками)
Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,054
Завершенные тесты: 1
28.11.2013, 19:08     string => char[] #5
попробуй тогда вот так
C++
1
2
char buf[512];
strcpy(buf,str.c_str());
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
28.11.2013, 19:45  [ТС]     string => char[] #6
Не могу проверить работает или нет, так как у меня выявилась неопознанная ошибка после подключения #include <string> еще до начала работы с чаром, проиходит конфликт причем не в самом string а в CMATH.
Убрал инклуд стиринг ошибка исчезла, но как же без него? вот скриншот, там полная борода какой я еще не видел(((
Миниатюры
string => char[]  
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
28.11.2013, 19:58  [ТС]     string => char[] #7
путем тыка понял что в проекте почему-то не работают глобальные библиотеки, а работают только при указании расширения файла, например не #include <string> а #include <string.h>.
Обявление стринга решил, а вот подключить std не получается((.
C++
1
using namespace std;
63 IntelliSense: необходимо использовать имя пространства имен
ps после #include <iostream> она видит std однако такой вид написания без н выдает множества ошибок. А #include <iostream.h> не видит(
Jupiter
28.11.2013, 20:01
  #8

Не по теме:

Цитата Сообщение от beats Посмотреть сообщение
Так и знал что кто-нибудь подскажет этот способ...((
Дело в том что он мне не подходит, не подходит ни const char* ни char * а я работаю с одной из кастомных dll библиотек которая в качестве аргумента принимает именно char [] и дальше делает с ним расчет, а все конверты в переменную с указателями там не принимаются!
Так и знал что вы это напишите так как матчасти не знаете

MrCold
852 / 750 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
28.11.2013, 20:01     string => char[] #9
beats, так у вас Си проект а не С++
Или файл с расширением .с прицепили вместо .срр
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
28.11.2013, 20:13  [ТС]     string => char[] #10
Да действительно, только это понял

Добавлено через 4 минуты
заменил расширение на .срр и заработало!
также последний вариант от Raali помог.
Все проблемы решены, тему можно закрывать, СПС
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
28.11.2013, 20:15     string => char[] #11
Не по теме, подскажите, c_str() - она возвращает копию? Т.е. после вызова, я должен позаботиться о соответствующем delete?
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
28.11.2013, 20:35  [ТС]     string => char[] #12
nexen, да ты прав. Это необязательно, но если для тебя критично то удаляй. см. http://www.cplusplus.com/reference/string/string/c_str/
MrGluck
Модератор
Эксперт CЭксперт С++
6969 / 4140 / 588
Регистрация: 29.11.2010
Сообщений: 10,978
28.11.2013, 20:37     string => char[] #13
nexen, все зависит от того, куда записываете.
Если в динамический массив, то память разумеется надо освободить, иначе не нужно.
C++
1
2
3
4
5
6
7
8
int main()
{
    std::string tmp = "Hello world!";
    char* s = new char[tmp.length()];
    std::strcpy(s, tmp.c_str());
    std::cout << s << std::endl;
    delete[] s;
}
но
C++
1
2
3
4
5
6
int main()
{
    std::string tmp = "Hello world!";
    const char* s = tmp.c_str();
    std::cout << s << std::endl;
}
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
28.11.2013, 21:02     string => char[] #14
beats, MrGluck, кому из вас верить? ;(
http://www.cplusplus.com/reference/string/string/c_str/ --- читал первым делом, но строчки типа "возвращает копию той информации, что в string" не нашел, но и обратного "возвращает саму информацию string-а" тоже
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
28.11.2013, 21:17  [ТС]     string => char[] #15
nexen, доверяй но проверяй...
не ленись, найди метод в string.h и проанализируй его исполнение
MrGluck
Модератор
Эксперт CЭксперт С++
6969 / 4140 / 588
Регистрация: 29.11.2010
Сообщений: 10,978
28.11.2013, 23:56     string => char[] #16
Цитата Сообщение от beats Посмотреть сообщение
nexen, доверяй но проверяй...
не ленись, найди метод в string.h и проанализируй его исполнение
string.h не содержит определения (фактически синонима) string и методов для работы с ним.
И вообще string определен в <string>

Добавлено через 2 минуты
nexen, она возвращает указатель
Returns a pointer to an array
Сами данные, на которые он указывает, освободятся в деструкторе string и нечего вне класса его начинкой управлять.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
29.11.2013, 06:54     string => char[] #17
MrGluck, в том то и дело, что "Returns a pointer to an array" может означать как то, что она возвращает данные на private (WTF? Not objective-oriented) поле string, а может означать и новую копию array.
Подразумеваю именно:
Цитата Сообщение от MrGluck Посмотреть сообщение
1
2
3
4
5
6
int main()
{
* * std::string tmp = "Hello world!";
* * const char* s = tmp.c_str(); //если это просто доступ к полю, то, конечно же, оно само удалится со деструктором tmp, иначе необходим delete.
* * std::cout << s << std::endl;
}
beats, причем тут string.h?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2013, 10:45     string => char[]
Еще ссылки по теме:

Преобразование string в char* - C++
функция c_str переделывает стринг строку в const char* , а мне надо чтобы было без const то есть существует ли функция которая переделает...

Перевод из string в char - C++
Хочу перевести из String в char но что та не получается. ошибка такая: инициализация: невозможно преобразовать &quot;const char *&quot; в &quot;char&quot; и...

Конвертация из String в Char - C++
не работает: char* temp_text = new char ; temp_text = Edit1-&gt;Text.c_str(); почему? говарит вот такое: как это исправить?

Преобразование string to char - C++
В общем никак не получается перегнать из строки в чар. Что надо: Имеется StringGrid и структура. Обьявлена структура как: struct...

Преобразования с char в string - C++
Помогите исправить и переделать чтобы использовать с string а не с char.Очень прошу:wall::help: #include &lt;iostream&gt; #include...


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

Или воспользуйтесь поиском по форуму:
gray_fox
What a waste!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 3
29.11.2013, 10:45     string => char[] #18
Цитата Сообщение от nexen Посмотреть сообщение
const char* s = tmp.c_str(); //если это просто доступ к полю, то, конечно же, оно само удалится со деструктором tmp, иначе необходим delete.
Если бы был бы необходим delete, то это было бы указано в стандарте; тем более у этого метода сложность константная, так что никаких копий.
Цитата Сообщение от nexen Посмотреть сообщение
что она возвращает данные на private (WTF? Not objective-oriented) поле string
А в чём проблема с этим? Состояние объекта без кастов с помощью этого метода всё равно не изменишь, а операция необходимая.
Yandex
Объявления
29.11.2013, 10:45     string => char[]
Ответ Создать тему
Опции темы

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