C/C++

WINAPI C++ string в char

Есть текст std::string tt = "C++ бесишь"; как ее преобразовать в char ???
char - это один символ (точнее, 1 байт). Нельзя строку (например, 10 символов) преобразовать в один символ. Можно получить какой-то один символ строки, это будет char.
СН
Стильный Но Не4Ева Одеть
58 065
Лучший ответ
// пример с динамическим массивом
#include <iostream>
#include <string>
#include <cstdlib>
#include <cstring>
using namespace std;
int main() {
cout << "String: ";
string line;
getline(cin, line);
auto length = line.length();
auto str = new char[length + 1];
copy(line.begin(), line.end(), str);
str[length] = 0;
cout << line << '\n' << str << '\n';
delete[] str;
system("pause > nul");
}
// пример со статическим массивом
#include <iostream>
#include <string>
#include <cstdlib>
#include <cstring>
using namespace std;
int main() {
cout << "String: ";
string line;
getline(cin, line);
auto length = line.length();
char str[0xFF];
if (length < size(str)) {
copy(line.begin(), line.end(), &str[0]);
str[length] = 0;
cout << line << '\n' << str << '\n';
}
system("pause > nul");
}
Kornilov Kor
Kornilov Kor
86 742
если нужно char* то это tt.c_str();
В плане корректного преобразования и хранения в однобайтовые символы char это не полезет. По старинке и по стандарту Си это пихают в строку типа wchar_t. Есть и другие (новые) типы.
&B
>>@! Bmx !@<<
37 945
Александр Неверко а как именно string в wchar_t запихать?
См. https://www.cplusplus.com/reference/string/string/c_str/
#include "string"
#include "stdio.h"

using namespace std;
int main(void) {
string tt = "C++ бесишь";
printf(tt.c_str());
return 0;
}
Agil Mahmudzade
Agil Mahmudzade
533
std::string tt = "Выбери язык попроще, раз бесит";
Александр Неверко не могу 200к заплатил, научили ток C++, а winapi нет. Ну как не научили, вроде учат но как-то медленно.