#4 14.11.10 23:45
Re: [C++] Строка из текстбокса
Код: cpp:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { char str[100]; int index1, index2, number, count; str = textBox1->Text; int len = strlen( str ); //удаляет лишние пробелы for( index1 = 0; index1 < len; index1++ ) { if(( index1 == 0 ) && ( str[index1] == ' ' )) { for( index2 = index1; index2 < len; index2++ ) { str[index2] = str[index2+1]; } index1 = -1; } if(( str[index1] == ' ' ) && ( str[index1+1] == ' ' )) { for( index2 = index1; index2 < len; index2++ ) { str[index2] = str[index2+1]; } index1 -= 1; } } //удаляет символы из слов соответствующие порядковому номеру слова в строке for( index1 = index2 = number = 0; index1 < len; index1++ ) { //сразу удаляет первый символ if( index1 == 0 ) { for( index2 = index1; index2 < len; index2++ ) { str[index2] = str[index2+1]; } number += 2; } if(( str[index1] == ' ' ) && ( str[index1+1] != ' ' )) { for( index2 = index1, count = 0; index2 < len; index2++, count++ ) { if( str[index2+1] == ' ' ) break; } //если букв в слове меньше чем его порядковый номер переходит к другому слову if( count < number ) { number++; continue; } for( index2 = index1 + number; index2 < len; index2++ ) { str[index2] = str[index2+1]; } number++; } } textBox2->Text = System::Convert::ToString(str); } };
вот код как сделать чтобы он принял строку в массив символов??
Offline
#5 15.11.10 01:31
Re: [C++] Строка из текстбокса
Смайлек написал(а):
в С++ нет текстбоксов
а в
DaZzle написал(а):
.NET вот какая
или, судя по коду, Visual C++ есть, как элемент ToolBox'а. Правильнее надо выражаться
По теме, TextBox работает с UTF-16, то бишь Unicode, поэтому символ кодируется 2 байтами. Пример из MSDN иллюстрирует перекодирование строки из одной кодировки в другую
Код::
using namespace System;
using namespace System::Text;
int main()
{
String^ unicodeString = "This string contains the unicode character Pi(\u03a0)";
// Create two different encodings.
Encoding^ ascii = Encoding::ASCII;
Encoding^ unicode = Encoding::Unicode;
// Convert the string into a Byte->Item[].
array<Byte>^unicodeBytes = unicode->GetBytes( unicodeString );
// Perform the conversion from one encoding to the other.
array<Byte>^asciiBytes = Encoding::Convert( unicode, ascii, unicodeBytes );
// Convert the new Byte into[] a char and[] then into a string.
// This is a slightly different approach to converting to illustrate
// the use of GetCharCount/GetChars.
array<Char>^asciiChars = gcnew array<Char>(ascii->GetCharCount( asciiBytes, 0, asciiBytes->Length ));
ascii->GetChars( asciiBytes, 0, asciiBytes->Length, asciiChars, 0 );
String^ asciiString = gcnew String( asciiChars );
// Display the strings created before and after the conversion.
Console::WriteLine( "Original String*: {0}", unicodeString );
Console::WriteLine( "Ascii converted String*: {0}", asciiString );
}да, и .NET и MFC - разные вещи
Исправлено [PAUL] (15.11.10 01:37)
Offline
#7 15.11.10 13:21
Re: [C++] Строка из текстбокса
Если проект создан как Windows Forms Application, должен распознавать. Какая среда разработки? Visual Studio 2008?
Создал новый проект для проверки, добавил на него кнопку и в обработчике события нажатия написал
Код::
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
String^ st="aaa";
}
};Нормально скомпилировалось
Исправлено [PAUL] (15.11.10 13:24)
Offline
#10 15.11.10 14:00
Re: [C++] Строка из текстбокса
всё равно вот какие ошибки :(
Ошибка 2 error C2065: Encoding: необъявленный идентификатор e:\oo\informatika\языки программирования\53.1\Form1.h 184 53.1
Ошибка 3 error C2065: ascii: необъявленный идентификатор e:\oo\informatika\языки программирования\53.1\Form1.h 184 53.1
Ошибка 4 error C2653: Encoding: не является именем класса или пространства имен e:\oo\informatika\языки программирования\53.1\Form1.h 184 53.1
Ошибка 5 error C2065: ASCII: необъявленный идентификатор e:\oo\informatika\языки программирования\53.1\Form1.h 184 53.1
Ошибка 6 error C2065: Encoding: необъявленный идентификатор e:\oo\informatika\языки программирования\53.1\Form1.h 185 53.1
Ошибка 7 error C2065: unicode: необъявленный идентификатор e:\oo\informatika\языки программирования\53.1\Form1.h 185 53.1
Ошибка 8 error C2653: Encoding: не является именем класса или пространства имен e:\oo\informatika\языки программирования\53.1\Form1.h 185 53.1
Ошибка 9 error C2065: Unicode: необъявленный идентификатор e:\oo\informatika\языки программирования\53.1\Form1.h 185 53.1
Ошибка 10 error C2065: unicode: необъявленный идентификатор e:\oo\informatika\языки программирования\53.1\Form1.h 188 53.1
Ошибка 11 error C2227: выражение слева от "->GetBytes" должно указывать на тип класса, структуры или объединения либо на универсальный тип e:\oo\informatika\языки программирования\53.1\Form1.h 188 53.1
Ошибка 12 error C2653: Encoding: не является именем класса или пространства имен e:\oo\informatika\языки программирования\53.1\Form1.h 191 53.1
Ошибка 13 error C2065: unicode: необъявленный идентификатор e:\oo\informatika\языки программирования\53.1\Form1.h 191 53.1
Ошибка 14 error C2065: ascii: необъявленный идентификатор e:\oo\informatika\языки программирования\53.1\Form1.h 191 53.1
Ошибка 15 error C2065: ascii: необъявленный идентификатор e:\oo\informatika\языки программирования\53.1\Form1.h 196 53.1
Ошибка 16 error C2227: выражение слева от "->GetCharCount" должно указывать на тип класса, структуры или объединения либо на универсальный тип e:\oo\informatika\языки программирования\53.1\Form1.h 196 53.1
Ошибка 17 error C2065: ascii: необъявленный идентификатор e:\oo\informatika\языки программирования\53.1\Form1.h 197 53.1
Ошибка 18 error C2227: выражение слева от "->GetChars" должно указывать на тип класса, структуры или объединения либо на универсальный тип e:\oo\informatika\языки программирования\53.1\Form1.h 197 53.1
Offline

