- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
string TRASETXT::trace(string &a // получаемая строка )
{
string b; // возвращаемая строка
stringstream s; // строковый поток
// переводит в втооом словосочетании все большие буквы в маленькие
for (unsigned int i = 0; i < a.size(); i++) // а - получаемая строка
{
int key = a[i];
if ((key <= -33) && (key >= -64)) // от А до Я
key += 32;
if (key == -88) // только буква Ё
key = -72;
if ((key >= 65) && (key <= 90)) // от A до Z
key += 32;
s << (char)key;
}
getline(s, b); // получаем строку только из маленьких букв во временную переменную
s.clear(); // очищаем поток
return b;
}
Увидел в курсаче у чувака, лучший метод преобразования строки в lowercase, везде буду использовать теперь и вам рекомендую
Выводит
В сишечке => крестах чар может signed или unsigned .
выводит
А вот так
выводит
А перед этим разве не нужно сделать какой-нибудь rewind?
А вообще /**/.
инновативно!
* моя реализация не покрывает весь C++
Теперь покрывает.
Вот за что я беспокоюсь - так это диграфы, триграфы, всякие эскейп-питушни, \ в конце строки и хитрожопые операторы. Ну и вероятность неправильного порядка в описании грамматики (например, /a|ab/)
нахуй его чистить от ошибок, прстите?
тем более, что он в следующей строчке и так сдохнет
(автор ещё небось не знает, что ему нужен был stringstream.str("") для "очищаем поток")
ошибка проектирования STL, когда хуево назвали метод, и теперь он делает не то, что все ожидают (не читая документации)
Да там в стримах 99% методов хуёво названы... Что стриму внушает метод imbue()?
а кто тебе её должен дать?
А ведь этому посвящён целый жанр...
Потому что не знаешь, какой именно слеш препроцессор/компилятор посчитает их завершением.
можно генерить кодом на пехапе код на пехапе, генерящий код на жс