Вернуться   Форум программистов > Форум Программирование > Форум C++

C++

Программирование на C++

Ответ
 
Старый 03.04.2009, 03:34   #1
Akula-II
Местный
 
Регистрация: 26.10.2004
Сообщений: 149
Akula-II пока не определено
По умолчанию Преобразование string в char*

int fun(char*);



int main() {

int a;

string strok;



strok="abc";

strok+="cde";



a=fun(strok);

return 0;

}

как в данном случае преобразовать strok в char* ?
Akula-II вне форума  
Старый 03.04.2009, 14:54   #2
palva
Местный
 
Регистрация: 31.03.2001
Сообщений: 1,467
palva пока не определено
По умолчанию RE: Преобразование string в char*

strok.c_str() вернет си-строку, но она будет только для чтения. Если бы у вас было написано

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

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

Код
1
2
3
4
5
6
7
char *buf = new char[strlen(strtok.c_str())];
 
strcpy(buf, strtok.c_str());
 
a=fun(buf);
 
delete[] buf;
Или воспользоваться функцией strdup с дальнейшим удалением получившейся строки с помощью функции free
palva вне форума  
Ads
Ответ
Опции темы

Похожие темы
Тема Автор
Рабыни для производства интернет-порнографии - Санкт-Петербург C++
ночью, посетив порнографический веб-чат (http://Pornication.com http://Pornication.com / http://privatefeeds.com http://privatefeeds.com) я вспомнил о том, что, как когда-то сказал мне один человек,...
krafta
Процедура преобразования целого числа символов C++
Помогите пожалуйста! Начала изучать С++ самостоятельно. Стоит задача: составить процедуру преобразования целого числа в строку символов (параметры процедуры - А: string - строка, B: integer - целое...
katsa
C++ Помогите с прогой (текстовый массив)
Задание: пользователь вводит текст с клавы ( число строк задает он) Далее в данном тексте выполняется поиск последнего вхождения заданной строки (строка то же вводится с клавы) программу...
tale
Что делать с утечками памяти? C++
С этими утечками памяти в C++ просто беда. Посоветуйте, что можно сделать? Может быть есть какие-то специальные утилиты?
Валишин
принцип взаимодействия с базами данных SQL в С++ C++
Распишите мне подробно, пожалуйста, принцип взаимодействия с базами данных SQL в С++.
Антон_Палыч
C++ Есть ли замена функциям как, например, define?
Недавно из прочитанной статьи о директивах препроцессора define узнал, что ее (define) можно применять и в качестве функции: #define LL (l) (l+l) Но вот в различных программных кодах никогда не...
ertyuo



Текущее время: 11:02. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

Рейтинг@Mail.ru