• Бесплатный ВЕБИНАР по OSINT с Екатериной Тьюринг: ➡️9 февраля в 19:00 (мск) пройдет урок

    Как безопасно искать информацию в открытых источниках

    🔥 Записаться 🔥

Работа со строками под C++ Net 2003

  • Автор темы Автор темы eugira
  • Дата начала Дата начала
E

eugira

(язык проекта C++ не C# тип проекта Console Application
1)Работа с типом String в C++ NET
Следующий код в C++ NET не работает
(выполняется, но печатаются 2 одинак строки, т.е .замены символа не происходит)
String *psl = S"Hello HHH"; // Строка "Привет, Мир"
String *ps2 = psl->Replace('Н', 'a'); // Замена
Console::WriteLine(psl);
Console::WriteLine(ps2);
В связи с чем вопрос как вообще работвть со строками не с char *
а со строковым типом String (который как MSDN позиционирует) поддерживается
не только в C# но и в C++
Или может это - управляемый объект, с которым может работать только C#?

2)Возможно ли в С++ NET (язык проекта C++ не C#) работать с классом StringBuilder?
При наличии using System
Вызов конструктора String * s= new String(S"Hello World");
Не вызывает ошибки а yf вызов ниже:
StringBuilder * psbl = new StringBuilder(S"Hello World"); /
Компилятор говориnтчто нет такого типа
И действительно его нет в списке при наборе System::StringBuilder::

3) Аналогичный вопрос про использование метода PARSE
Фишка типа
double a = double::Parse( Console :: ReadLine ());
не проходит в C++
если набрать double:: то в списке не видно Parse
в то же время в MSDN говорится что он есть для C++ и для C#
 
Полная мешанина С++ и C#. В "чистом" С++ вместо char* лучше использовать std::string
 
Не понятно, что хочет автор вопроса:
1 - использовать чистый С++
2 - использовать фреймворк и писать на С++
По поводу первого я уже ответил, если второе, то тип проекта должен быть "CLR Console Application"

P.S. Что-то торможу: перечитал пост еще раз и сам понял :)
 
Да действительно по 1 вопросу
String * psl = "Нell Нello";
//замена не будет работать, ошибки компилятор не дает т.е одиночные кавычки
String * ps2 = psl->Replace('Н', 'a');
но код String * ps2 = psl->Replace("Н", "a"); //действительно работает


Проект действительно типа CLR Console Application
Но я хочу в нем работать со строками не только char * (0-терминированными) как в станд С++
а с классами String и StringReader как это позиционировано в MSDN NET - не удается
Даже совсем стандартные приемы C++ типа
char * s="Hello World "; char * s1=" my";
strcat(s," EUG");
//Console::WriteLine(s); //вызывает ошибку видимо из=за аргумента не const char * а String
printf("\n%s",s); //тоже валится но не понятно почему
 
<!--QuoteBegin-Е.Багоцкий+2:02:2007, 13:10 -->
<span class="vbquote">(Е.Багоцкий @ 2:02:2007, 13:10 )</span><!--QuoteEBegin-->Но я хочу в нем работать со строками не только char * (0-терминированными) как в станд С++
а с классами String и StringReader как это позиционировано в MSDN NET
[snapback]54832" rel="nofollow" target="_blank[/snapback]​
[/quote]
Я только не понимаю зачем работать с 2-мя типами строк? Это потенциальный источник ошибок
<!--QuoteBegin-Е.Багоцкий+2:02:2007, 13:10 -->
<span class="vbquote">(Е.Багоцкий @ 2:02:2007, 13:10 )</span><!--QuoteEBegin-->printf("\n%s",s); //тоже валится но не понятно почему
[snapback]54832" rel="nofollow" target="_blank[/snapback]​
[/quote]
Валится на строку раньше, так как в s недостаточно зарезервировано памяти для добавления еще 4-х символов
 
2)Возможно ли в С++ NET (язык проекта C++ не C#) работать с классом StringBuilder?
Да, возможно. System::Text::StringBuilder


1)Работа с типом String в C++ NET
И что ты хотел сказать буквами "yf" в "Не вызывает ошибки а yf вызов ниже:"
Код:
	String *psl = "Hello HHH"; 
String *ps2 = psl->Replace('Н', 'a'); //Странно, но мой код не работает...
String *ps3 = psl->Replace('H', 'a'); //Ммм.. а этот работает. неужели это поганый MSDN?
Console::WriteLine(psl);
Console::WriteLine(ps2);
Console::WriteLine(ps3);
Найди 10 различий!

3) Аналогичный вопрос про использование метода PARSE
Что бы делать такие "фишки" желательно хотябы знать как MSDN открывать.
double a = a.Parse( Console :: ReadLine ());
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!