Название: [РЕШЕНО] Негативная конверктация регистра символа Отправлено: gil9red от Май 08, 2012, 20:39 Здравствуйте! =)
Решил написать конвертор регистра символов. Идея проста: окно, на нем два виджета TextEdit(окно ввода (1) и окно вывода (2)) и три кнопки QPushButton Первая кнопка переводит текст в верхний регистр: был: "машина - CAR", стал: "МАШИНА - CAR", Вторая кнопка переводит текст в нижний регистр А третья переводит негативно - в зависимости от регистра символа: был: "Hello World!", стал: "hELLO wORLD!" для первой и второй кнопки не нужно было придумывать алгоритм - Qt уже об этом позаботился для третьей я придумал такой код: Код: QString makeConvertNegative(QString InputString) Этот алгоритм работает просто: проверяем регистр каждого символа строки и вставляем на его место символ с противоположным регистром Но! Этот алгоритм не все регистры символов переводит негативно, точнее если вводить по одному символу и конверктировать, то работает. Помогите понять в чем ошибка, и "ткнуть пальцем" на нее ;D Название: Re: Негативная конверктация регистра символа Отправлено: Alex Custov от Май 08, 2012, 20:53 Этот алгоритм работает просто: проверяем регистр каждого символа строки и вставляем на его место символ с противоположным регистром метод replace(), использованный тобой, заменяет все вхождения одного символа на другой, а не конкретный символ по индексу i. Поэтому некоторые символы меняются по несколько раз. Используй Цитировать QString & QString::replace ( int position, int n, QChar after ) Название: Re: Негативная конверктация регистра символа Отправлено: Igors от Май 08, 2012, 20:55 Код
Название: Re: Негативная конверктация регистра символа Отправлено: gil9red от Май 08, 2012, 21:06 Alex Custov, спасибо, вы абсолютно правы =)
Igors, спасибо за рабочий вариант =) и без replace() можно обойтись)) |