C str
Автор Aurorie ` задал вопрос в разделе Другие языки и технологии
C++ Что делает c_str()? Объясните начинающему программисту понятно и просто, пожалуйста. и получил лучший ответ
Ответ от Алекс Куха[гуру]
programmersforum.ru/showthread.php?t=180282
Ответ от Ирэн Ницше[гуру]
В С++ два типа строк: string (или wstring) и динамический массив символов char (или wchar_t).Но функции из стандартной библиотеки работают или с олдним. или с другим, и не перегружены (не продублированы) для другого.Поэтому если вам надо применить поочередно несколько библиотечный функций, то и приходится преобразовывать один тип строк в другой и обратно.В том числе с помощью этой функции.
В С++ два типа строк: 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); // можно
Преобразовывает строку 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 коде, её лучше избегать настолько, насколько это возможно, дабы не плодить "суржик" (смесь двух стилей в одном исходном коде)
Формирует массив строк в стиле си. И возвращает указатель на него.Допустим, некоторая функция в качестве параметра принимает указатель на массив чаров: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()? Объясните начинающему программисту понятно и просто, пожалуйста.
спросили в Stdio h Stdlib h
Как задать двумерный массив строк в C? Как его потом заполнять?
Можно и так.. .
// _70077822
#include <stdio.h>
#include
подробнее...
Как задать двумерный массив строк в C? Как его потом заполнять?
Можно и так.. .
// _70077822
#include <stdio.h>
#include
подробнее...
спросили в C S I
Сортировка строки по алфавиту (C#)
Ну к примеру с помощью любой сортировки - пузырьком или чем угодно.
Адам
подробнее...
Сортировка строки по алфавиту (C#)
Ну к примеру с помощью любой сортировки - пузырьком или чем угодно.
Адам
подробнее...
C++ str, подскажите
Иногда консольное приложение запускает не пользователь, а другая программа-оболочка (обычно с
подробнее...
спросили в C++ Stdio h
создание txt файлов в c++
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include
подробнее...
создание txt файлов в c++
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в String h
Товарищи, подскажите метод для преобразования из массива char в строку (C#) и пример плз
string str = new string(arr); // arr - имя символьного массива типа
подробнее...
Товарищи, подскажите метод для преобразования из массива char в строку (C#) и пример плз
string str = new string(arr); // arr - имя символьного массива типа
подробнее...
C++ найти подстроку в строке
const wchar_t * wcsstr( const wchar_t * str, const wchar_t * strSearch );
Источник:
подробнее...
C# Почему преобразование char в int работает "не так"?
Потому что вы получаете ASCII код символа "1", который равен 49
#yahrefs207359#
i =
подробнее...
спросили в Stdio h
Строки в c++.
#include<stdio.h>
#include<conio.h>
int main()
{ char str[100],x='a';
подробнее...
Строки в c++.
#include<stdio.h>
#include<conio.h>
int main()
{ char str[100],x='a';
подробнее...
Приведите простой пример программы на C++.
#include <iostream>
using namespace std;
int main() {
char str[12], * ptr;
подробнее...
спросили в Styx
C++ оператор Switch-case
Судя по "коду" у вас просто бардак в голове: переменная j которую вы не используете, cout <<
подробнее...
C++ оператор Switch-case
Судя по "коду" у вас просто бардак в голове: переменная j которую вы не используете, cout <<
подробнее...