Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск рус. слова в переменной типу STRING, поиск слово рус. стринг string 
:(
    Опции темы
mes
Дата 26.4.2012, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(borisbn @  26.4.2012,  13:35 Найти цитируемый пост)
 логично ли предположить, что такой код

пойдем дальше :
логично ли предположить 
Код

std::string text = "Привет";
cout << text;

что вывод этого кода будет Привет ? однако ж практика (в том числе и куча вопросов почему у меня кракозябры вместо текста) утверждают обратное smile что уж говорить про отдельный символ smile

Добавлено @ 14:51
Цитата(borisbn @  26.4.2012,  13:35 Найти цитируемый пост)
а именно QString 

если говорить по логику , то для меня строчка,  по вывода введенного пользователем текста :
Код

m_QLabel->setText( m_QLineEdit->getText() );

хоть и логична, но внушает (справедливые) опасения  smile какие именно умолчу, чтоб дать возможность понять направление моих мыслей
так что на чистой логике  в программированнии далеко не уедишь smile


Это сообщение отредактировал(а) mes - 26.4.2012, 14:54


--------------------
PM MAIL WWW   Вверх
borisbn
Дата 26.4.2012, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(mes @  26.4.2012,  14:44 Найти цитируемый пост)
 внушает (справедливые) опасения

html ? ну... именно в QLabel он не страшен. XSS там не пройдёт)))


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
mes
Дата 26.4.2012, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(borisbn @  26.4.2012,  15:02 Найти цитируемый пост)
именно в QLabel он не страшен.

страшен ли - это другой вопрос ) но поведение может быть не очень ожидаемое..так же как и str.at(1) smile


--------------------
PM MAIL WWW   Вверх
volatile
Дата 26.4.2012, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(borisbn @  26.4.2012,  08:17 Найти цитируемый пост)
Вы неправы насчёт того, что комбинация, похожая на 'А' может появиться из двух половинок двух символов


borisbn,  признаюсь, я привел не удачный пример. Хотел максимально простой и наглядный. Придумал, так на лету, но .. ступил 
признаюсь!  smile 
При правильной строке действительно невозможно такое состояние.

Но тем не менее, смысл не в этом примере.  Кодировка utf8, э... как бы это сказать... глюкабельная.
т.е. предрасполагающая к багам. Очень часто видел в программах, ошибки приводящие к нестабильности.
Не хочу щас копаться выискивать какие-то примеры.
Достаточно того, что в слове "привет", все-ж таки 6 букв, а не 12  smile

Цитата(volatile @  26.4.2012,  02:09 Найти цитируемый пост)
Ладно, ребята. убеждать не буду, больше.

Тем более, что похоже это начинает затрагивать чьи-то религиозныее чувства.
А там где начинается фанатизм, кончается логика.



Это сообщение отредактировал(а) volatile - 26.4.2012, 23:44
PM MAIL   Вверх
baldina
Дата 27.4.2012, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(volatile @  26.4.2012,  23:34 Найти цитируемый пост)
 Кодировка utf8, э... как бы это сказать... глюкабельная.
т.е. предрасполагающая к багам

мнение понятно, но не обоснованно

Цитата(volatile @  26.4.2012,  23:34 Найти цитируемый пост)
Очень часто видел в программах, ошибки приводящие к нестабильности.

я тоже. только причем тут utf? ошибки в программах вообще склонны приводить к нестабильности
Цитата

- что в мире творится?
- стабильности нет...


c utf неудобно работать при помощи char (std::string), да, но - не опасно.
к тому же есть библиотеки, utfcpp например
так что религия тут непричем)
PM MAIL   Вверх
boostcoder
Дата 27.4.2012, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(volatile @  26.4.2012,  23:34 Найти цитируемый пост)
затрагивать чьи-то религиозныее чувства

т.е. тот факт, что utf8 самая удобная кодировка(имхо) - религиозные чувства?


Это сообщение отредактировал(а) boostcoder - 27.4.2012, 00:32
PM WWW   Вверх
volatile
Дата 27.4.2012, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(baldina @  27.4.2012,  00:08 Найти цитируемый пост)
c utf неудобно работать

Цитата(boostcoder @  27.4.2012,  00:31 Найти цитируемый пост)
utf8 самая удобная кодировка


Надо голосование устроить. smile 

PM MAIL   Вверх
volatile
Дата 27.4.2012, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Блин.., из-за того что вчера тупанул, даже спал плохо..
Ночью снились utf символы, и другие кошмары  smile  

Стоит только добавить, что мое замечание, 
Цитата(volatile @  26.4.2012,  23:34 Найти цитируемый пост)
При правильной строке действительно невозможно 

означает лишь что над строкой не выполнялись, например, никакие стандартные алгоритмы.

Иначе на вопрос
Цитата(boostcoder @  26.4.2012,  01:06 Найти цитируемый пост)
слишком много букаф %)
воспроизведи то о чем говоришь, в примере. 

можно привести реальный пример:
Код

int main ()
{
   std::string str = "ѐЁ";               // Исходная строка, весьма далекая от намёка на букву 'А'
   std::sort (str.begin(), str.end (), std::greater<char>()); // сортировка строки, невинная операция, при нормальной кодировке
   std::cout << russsianA (str);     // В строке  появилась русская 'A'

}

http://codepad.org/aQMdC3ag

boostcoder, lws почему-то у меня щас не открылась


Это сообщение отредактировал(а) volatile - 27.4.2012, 06:58
PM MAIL   Вверх
boostcoder
Дата 27.4.2012, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(volatile @  27.4.2012,  06:48 Найти цитируемый пост)
реальный пример

ну... я не верю, что можно случайно отсортировать utf`ную строку))

к тому же(специально по этому случаю, добавил на LWS utfcpp):
Код

#include <iostream>
#include <string>
#include <algorithm>
#include <utf8.h>

int main () {
   std::string str = "ѐЁ";               // Исходная строка, весьма далекая от намёка на букву 'А'
   std::cout << std::boolalpha << utf8::is_valid(str.begin(), str.end()) << std::endl;
   std::sort (str.begin(), str.end (), std::greater<char>()); // сортировка строки, вобщем-то невинная операция, при нормальной кодировке
   std::cout << std::boolalpha << utf8::is_valid(str.begin(), str.end()) << std::endl;
   //std::cout << russsianA (str); // это что за функция? оО
}

http://liveworkspace.org/code/492f72f74fa9...5201b674ba97c4d


Цитата(volatile @  27.4.2012,  06:48 Найти цитируемый пост)
lws почему-то у меня щас не открылась

да, сервер вчера обновлял.


Добавлено через 1 минуту и 52 секунды
дока, если вдруг кто захочет поэкспериментировать.
PM WWW   Вверх
volatile
Дата 27.4.2012, 10:59 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(boostcoder @  27.4.2012,  07:11 Найти цитируемый пост)
я не верю, что можно случайно отсортировать 

Не только отсортировать. Практически любой стандартный алгоритм может привести к краху.
Да не только алгоритм, обыный доступ к символу  str[n] = 'А', это самоубийство;
Нужно постоянно помнить об этом.

Цитата(boostcoder @  27.4.2012,  00:31 Найти цитируемый пост)
тот факт, что utf8 самая удобная кодировка(имхо) - религиозные чувства?

Не верю просто что это можно назвать самой удобной кодировкой, иначе как не под религиозным порывом.  smile

Не думал что это выльется в холивар. (В конечно счете, как я понимаю win vs nix).
Боже упаси, не хочу в этом участвовать.  smile 

Между прочим уважаю линуксоидов. В никсах действительно очень и очень много что гораздо лучше, сделано чем в венде.
И венда по общему (суммарному) безусловно проигрывает. Но есть вещи, которые в венде лучше, их не много, но они есть.

Между прочим, недавно дженту поставил в качестве альтернативки.
Неплохоая штуковина, п...хаться правда пришлось, но щас вроде все ок.  smile 


PM MAIL   Вверх
boostcoder
Дата 27.4.2012, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(volatile @  27.4.2012,  10:59 Найти цитируемый пост)
Не только отсортировать. Практически любой стандартный алгоритм может привести к краху.
Да не только алгоритм, обыный доступ к символу  str[n] = 'А', это самоубийство;
Нужно постоянно помнить об этом.

просто нужно приучать себя к пониманию того, что строка - не контейнер чаров, а контейнер некоторых единиц интерпретируемых как символы.
и все. никаких косых действий в этом случае не случится.
PM WWW   Вверх
volatile
Дата 27.4.2012, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(boostcoder @  27.4.2012,  11:03 Найти цитируемый пост)
просто нужно приучать себя к пониманию того,

В том то все и дело, что об этом почти  никто не вспоминает.
Зачем далеко ходить, даже на этом форуме, почти любая программа которую пишут для новичков, (и не только для новичков), грешит этим.
Вспоминаю такие темы как "определить что это полиндром",  "найти максимальное по длине слово в предложении", и так далее...,  здесь таких тем очень много.
Любая из этих программ при вводе русских символов отправит комп в "нирвану", (или в самом лучшем случае просто даст не верный результат).
А кто запретит ввести русские символы?

PM MAIL   Вверх
baldina
Дата 27.4.2012, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(boostcoder @  27.4.2012,  07:11 Найти цитируемый пост)
я не верю, что можно случайно отсортировать utf`ную строку

Вы счастливый человек, boostcoder. Я вот не верю, что это можно сделать нарочно  smile 

volatile, удобно использовать (в быту), неудобно программировать (на С++), только и всего
PM MAIL   Вверх
borisbn
Дата 27.4.2012, 13:08 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Я бы так сформулировал: строку в utf-8 в std::string можно ТОЛЬКО хранить. Никаких операций с ней делать нельзя. Взять хотя бы reverse_iterator... Кстати... с rbegin() и эта библиотечка не спасёт:
Цитата
utf8::is_valid( str.rbegin(), str.rend() )


С utf-8 в Си++ становится как в интернетах - всё, что вводит пользователь - обязательно "анэскейпить". В нашем случае - переводить либо в свою однобайтовую кодировку, либо в utf-16, а уж затем работать с такой строкой...



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
boostcoder
Дата 27.4.2012, 13:14 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



ну не знаю... помоему вы все слишком драматизируете..

PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1156 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.