Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.51/172: Рейтинг темы: голосов - 172, средняя оценка - 4.51
4319 / 1487 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
1

Как перевести char[] в System::String^ и наоборот?

27.06.2009, 17:27. Показов 31420. Ответов 4
Метки нет (Все метки)

Как перевести char[] в System::String^ и наоборот?

C++
1
2
3
4
char c='q';
String^ s;
s=Convert::ToString(c);         
this->textBox1->Text=s;
s получает значение ASCII кода c, а не самого с
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2009, 17:27
Ответы с готовыми решениями:

Как можно перевести System::String в char?
Добрый день, подскажите как можно перевести System::String в char да либо как взять 1 конкретный...

Преобразование System::String в Char* и наоборот
Функция преобразования: void sts(String ^orig, char *&out) { int length = orig->Length; out =...

Правильный перевод из System::String^ в unsigned char и наоборот
Приветствую! Мне нужно навесить GUI на одно приложение. Вся проблема в том, что функциям...

Перевести строку из char в System::String
Здравствуйте! Есть такая вот беда мне нужно считать с файла информацию и вывести ее в форме, но...

4
2448 / 359 / 8
Регистрация: 27.06.2009
Сообщений: 880
27.06.2009, 17:58 2
Возможно как-то так
C++
1
2
String^ s = "s";    
Char c = s[0];
Если С++/CLI
0
22 / 22 / 3
Регистрация: 12.05.2009
Сообщений: 43
27.06.2009, 18:18 3
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
//System::String^ to char*
using namespace System::Runtime::InteropServices;
 
char * and_SysStringToChar(System::String^ string) 
{
return (char*)(void*)Marshal::StringToHGlobalAnsi(string);
}
...
char *str = new char[] = and_SysStringToChar(textBox1->Text); //вызваем так
delete [] str;

C++
1
2
3
4
5
6
7
8
9
10
11
// char* to System::String^
System::String^ * and_CharToSysString(char* ch) 
{
char * chr=new char[]=ch;
System::String^ str;
for(int i=0;chr[i]!='\0';i++)
{
     str+=wchar_t(ch[i]);
}
return str;
}
14
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 1
09.04.2020, 21:29 4
Насчет System::String^ to char* попробовал с этим циклом:
C++
1
2
3
4
5
6
char * chr=new char[]=ch;
System::String^ str;
for(int i=0;chr[i]!='\0';i++)
{
     str+=wchar_t(ch[i]);
}
и моя кириллица сказала мне до свидания... На оф сайте нашел решение по короче, с ним проблем не возникло:
C++
1
2
3
//System::String^ to char*
char *orig = "Hello, World!";
String ^systemstring = gcnew String(orig);
0
14 / 14 / 3
Регистрация: 27.06.2016
Сообщений: 191
12.04.2020, 22:00 5
Всё это делается с помощью маршалинга и код есть в прикреплённых темах.
Но можно тупо перебрать посимвольно и поменять коды по таблице символов что укладывается в 6 строк простого кода.

Главная проблема подобных переводов заключается в том что char это однобайтная переменная которая имеет кодировку
в случае с русским языком что то вроде кои 7, а System::String^ состоит из двухбайтных символов в кодировке толи Win 1252 толи unicod.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2020, 22:00

Как перевести Int в String а потом наоборот
#include <iostream> #include <math.h> using namespace std; int main() { int...

Как преобразовать System::String в char?
Нужны рабочие варианты для visual studio C++. В инете куча примеров которые не работают в VS2015.

Как string присвоить String? И как из string перевести в char[]?
Как string присвоить String? И как из string перевести в char?

Как преобразовать const unsigned char в System::String^?
Всем привет. Есть задание на Visual Studio c++ написать небольшую программку с Windows Forms....


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

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

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