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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 83, средняя оценка - 4.87
Akula-II
0 / 0 / 0
Регистрация: 02.01.2011
Сообщений: 149
#1

Преобразование string в char* - C++

03.04.2009, 02:34. Просмотров 10101. Ответов 1
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun(char*);
 
int main() {
  int a;
  string strok;
 
  strok="abc";
  strok+="cde";
 
  a=fun(strok);
  return 0;
}
как в данном случае преобразовать strok в char* ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2009, 02:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Преобразование string в char* (C++):

Преобразование string в char - C++
как преобразовать тип string в char?

Преобразование String^ в char* - C++
Здравствуйте. У меня есть строка кода, принимающая массив символов char *ex = gets_s(buff, sizeof(buff)); Сейчас я добавляю...

Преобразование char* в string - C++
Доброго времени суток. Если я динамически выделил память для массива типа char, то как его можно преобразовать в string?

Преобразование string в char* - C++
char* string_to_char(string str){ int size = str.size(); char *ch = new char; for(int i = 0; i < size; i++) { ch = str; ...

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

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

1
palva
2681 / 1908 / 286
Регистрация: 08.06.2007
Сообщений: 7,021
Записей в блоге: 4
03.04.2009, 13:54 #2
strok.c_str() вернет си-строку, но она будет только для чтения. Если бы у вас было написано

Код
int fun(const char*);
тогда компилятор пропустил бы такой код:

Код
a=fun(strok.c_str());
Только возращаемый указатель долго не живет. Если в strok будут внесены изменения, то есть шанс, что содержимое строки будет перенесено в другое место памяти и указатель устареет. Так что корректнее всего вытаскивать содержимое строки в буфер, и работать уже с буфером.

Код
char *buf = new char[strlen(strtok.c_str())];

strcpy(buf, strtok.c_str());

a=fun(buf);

delete[] buf;
Или воспользоваться функцией strdup с дальнейшим удалением получившейся строки с помощью функции free
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2009, 13:54
Привет! Вот еще темы с ответами:

String в char. Не получается преобразование - C++
Задание: 1.Получить имя как параметр командной строки(через аргументы функции main) На экране: "Привет, Имя" 2.Есть функция cat().Должны...

Преобразование Char в System::String - C++
Здравствуйте! Я пишу программу по типу монитора системных ресурсов. Название процессора решил взять из реестра. В консоли все прошло...

Преобразование из string в массив char - C++
Помогите присвоить символьные значения компоненты textBox в массив char чтобы потом можно было использовать его как параметр функции при её...

Преобразование слов из string в тип char внутри цикла - C++
Имеется отрывок из кода: //все необходимые библиотеки подключены ifstream fin; fin.open("input.txt"); char strok; string s;...


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

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

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