c str



C str

Автор Aurorie ` задал вопрос в разделе Другие языки и технологии

C++ Что делает c_str()? Объясните начинающему программисту понятно и просто, пожалуйста. и получил лучший ответ

Ответ от Алекс Куха[гуру]
programmersforum.ru/showthread.php?t=180282

Ответ от Ирэн Ницше[гуру]
В С++ два типа строк: string (или wstring) и динамический массив символов char (или wchar_t).Но функции из стандартной библиотеки работают или с олдним. или с другим, и не перегружены (не продублированы) для другого.Поэтому если вам надо применить поочередно несколько библиотечный функций, то и приходится преобразовывать один тип строк в другой и обратно.В том числе с помощью этой функции.

Ответ от Александр Парамонов[гуру]
Конвертирует С++ строку в С строку. Это разные языки, и строки у них разные, но конвертируемые друг в друга.

Ответ от [гуру]
Преобразовывает строку string (или wstring) в указатель на динамический массив символов char (или wchar_t).Нужно в тех случаях, когда надо передать содержимое string в функцию, которая принимает не string, а только такой массив, скорее всего это сишная функция типа MessageBox из Windows.hКак-то так (пишу по памяти, не проверял):wstring s;s = L"Hello World";MessageBox(0, s, 0, 0); // нельзяMessageBox(0, s.c_str(), 0, 0); // можно

Ответ от Ms.Pozitiff[гуру]
Формирует массив строк в стиле си. И возвращает указатель на него.Допустим, некоторая функция в качестве параметра принимает указатель на массив чаров:void Foo(const char* content);То есть, в неё можно передать строку только в виде c-ctyle указателяА у тебя есть строка записанная в стринге:std::string str="привет мир";И тебе нужно передать эту строку в твою функцию:Foo(str); //нельзя. функция не умеет работать со стрингамино так как функция не умеет работать со стрингами, а только с указателями, то единственный способ сделать это - функция c_str()Foo(str.c_str() ); //можно. Функция c_str() присутствует только для совместимости с с-style кодом.И в собственном c++ style коде, её лучше избегать настолько, насколько это возможно, дабы не плодить "суржик" (смесь двух стилей в одном исходном коде)

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: C++ Что делает c_str()? Объясните начинающему программисту понятно и просто, пожалуйста.
String C++ на Википедии
Посмотрите статью на википедии про String C++
Абитуриент на Википедии
Посмотрите статью на википедии про Абитуриент
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*