none
Работа со строками RRS feed

Ответы

  • Посмотрите тогда вот эту ветку: Способы преобразования из System::String * на Char * в Visual C++

     

    std::string -> System::String

    string s1 = "Привет всем ";

     

    // Надо перевести s1 в тип String для вывода

    String ^s3 = gcnew String(s1.c_str());

    this->textbox1->Text = s3;

     

    System::String -> char*

    String ^Inp = gcnew String("Hello, word!");

    pin_ptr<const wchar_t> wch = PtrToStringChars(Inp);

    size_t Inp_size = wcslen(wch) + 1; // Вычисление длины

    const size_t newsize = 100;

    size_t i = 0;

    char Out[newsize];

    wcstombs_s(&i, Out, Inp_size, wch, _TRUNCATE);

    this->textbox1->Text = gcnew String(Out);


    E-mail: Svatoslav.Pankratov@gmail.com
    • Предложено в качестве ответа Abolmasov Dmitry 11 января 2011 г. 14:55
    • Помечено в качестве ответа Ruzik 11 января 2011 г. 16:36
    10 января 2011 г. 19:43
  • Добрый вечер!

    Необходимо подключить <string.h> и <sdlib.h>


    E-mail: Svatoslav.Pankratov@gmail.com
    • Помечено в качестве ответа Ruzik 20 января 2011 г. 13:54
    19 января 2011 г. 18:39
  • Ой, прошу прощения, опечатался =) Надо <stdlib.h>
    E-mail: Svatoslav.Pankratov@gmail.com
    • Помечено в качестве ответа Ruzik 20 января 2011 г. 13:54
    20 января 2011 г. 13:18

Все ответы

  • А нет ли отдельной функции для преобразования из System::String в std::Sting, например упомянутая в вашей ссылке функция PtrToStringChars, 

    я ей попытался воспользоваться, ошибок не каких не выдало, проект запустился, только вот строка так  и осталось System::String, вот нужный код

    System::String^ SyStr;

    SyStr=textBox1->Text;

    PtrToStringChars(SyStr);

    button1->Text=SyStr;

    Текст Button1 не должен был измениться, так как он принимает System::String

    10 января 2011 г. 13:16
  • Посмотрите тогда вот эту ветку: Способы преобразования из System::String * на Char * в Visual C++

     

    std::string -> System::String

    string s1 = "Привет всем ";

     

    // Надо перевести s1 в тип String для вывода

    String ^s3 = gcnew String(s1.c_str());

    this->textbox1->Text = s3;

     

    System::String -> char*

    String ^Inp = gcnew String("Hello, word!");

    pin_ptr<const wchar_t> wch = PtrToStringChars(Inp);

    size_t Inp_size = wcslen(wch) + 1; // Вычисление длины

    const size_t newsize = 100;

    size_t i = 0;

    char Out[newsize];

    wcstombs_s(&i, Out, Inp_size, wch, _TRUNCATE);

    this->textbox1->Text = gcnew String(Out);


    E-mail: Svatoslav.Pankratov@gmail.com
    • Предложено в качестве ответа Abolmasov Dmitry 11 января 2011 г. 14:55
    • Помечено в качестве ответа Ruzik 11 января 2011 г. 16:36
    10 января 2011 г. 19:43
  • Здравствуйте спасибо за помощь, я попытался использовать System::String -> char*, но у меня выдало две ошибки

     

    Ошибка 1 error C3861: wcslen: идентификатор не найден c:\documents and settings\rustam\мои документы\visual studio 2010\projects\полигон1\Form1.h 82 1 Полигон1

    Ошибка 2 error C3861: wcstombs_s: идентификатор не найден c:\documents and settings\rustam\мои документы\visual studio 2010\projects\полигон1\Form1.h 86 1 Полигон1

    Как я понимаю здесь задействована библиотека vcclr.h, её я подключил, но видно это еще не все

     

    19 января 2011 г. 18:33
  • Добрый вечер!

    Необходимо подключить <string.h> и <sdlib.h>


    E-mail: Svatoslav.Pankratov@gmail.com
    • Помечено в качестве ответа Ruzik 20 января 2011 г. 13:54
    19 января 2011 г. 18:39
  • Интересно каким образом преобразуются '\0' символы? System.String работает с ними без проблем, что если в строке будет такой символ?
    20 января 2011 г. 1:53
  • Выдает следующую ошибку

    Ошибка 1 error C1083: Не удается открыть файл включение: sdlib.h: No such file or directory c:\documents and settings\rustam\мои документы\visual studio 2010\projects\полигон1\Form1.h 4 1 Полигон1

    Нельзя ли как-то заменить wcstombs_s на другую функцию

    20 января 2011 г. 12:49
  • Ой, прошу прощения, опечатался =) Надо <stdlib.h>
    E-mail: Svatoslav.Pankratov@gmail.com
    • Помечено в качестве ответа Ruzik 20 января 2011 г. 13:54
    20 января 2011 г. 13:18
  • Спасибо за помощь, я понял как конвертировать System::String -> char*,

    но надо было конвертировать в std::string а не char*, можно ли как-то массив char конвертировать в std::string, кроме ручного(переписывания всех символов)

    20 января 2011 г. 13:56
  • Ну, например, посмотрите тут
    E-mail: Svatoslav.Pankratov@gmail.com
    20 января 2011 г. 14:14