Форум программистов, компьютерный форум CyberForum.ru

Перевод строк в верхний и нижний регистры не работает для кириллицы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Алгоритм Флойда — Уоршелла http://www.cyberforum.ru/cpp-beginners/thread1065194.html
Мне нужно подсчитать сумму кротчайшего пути от вершины А к вершине В. При этом не нужно брать в расчеты 0 (нули).
C++ Добавить в данный код функцию вывода на экран количества не четных элементов массива Доброго времени суток. Помогите пожалуйста добавить в данный код функцию вывода на экран количества не четных элементов массива: #include <stdio.h> #include <conio.h> #include <stdlib.h> int main(void) { int n, i, mas; printf("\nVvedite kolichestvo elementov massiva : "); scanf("%d", &n); http://www.cyberforum.ru/cpp-beginners/thread1065190.html
Придумать программу, в которой должны быть задействованы некоторые темы C++
Помогите, пожалуйста. Нужно придумать программу и алгоритм к ней, в которой затронулись бы эти темы: 1. Вычисление арифметических выражений 2. Операторы С++ 3. Вычисление ряда. Форматное введение - вывод данных 4. Массивы(одномерные и двумерные). Спасибо большое заранее. P.S. Очень срочно.
C++ Обработка одномерных массивов. Сортировка массивов
Здравствуйсте! Помогите пожалуйста написать программу! В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный по модулю элемент массива; 2) сумму элементов массива, расположенных между первым и вторым положительными элементами. Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных. Простым способом пожалуйста....
C++ Поиск по шаблону http://www.cyberforum.ru/cpp-beginners/thread1065146.html
При реализации поиска по шаблону столкнулся со следующей проблемой: Шаблон: *abc Тест1: abc Тест2: fabc Тест3: ssabk_abc Первые два, конечно же, проходит нормально, а вот последний нет. По сути, "*" - сколь угодно символов и при текущей реализации я просто проверяю строку до тех пор, пока не встречу следующий за "*" символ. Однако, из-за этого на третьем тесте я получаю ошибку, хотя строка...
C++: IDE, инструментарий Есть ли в студии функционал, позволяющий убирать лишние симолы? привет всем кое где слышал есть фишка в студии она позволяет убрать сивол из кода плиз научите на примере кода #include <fstream> main(int n){ std::fstream i("input.txt"), o("output.txt", 2); i>>n; o<<n/6<<" "<<2*n/3<<" "<<n/6; } подробнее

Показать сообщение отдельно
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
08.01.2014, 18:27     Перевод строк в верхний и нижний регистры не работает для кириллицы
Цитата Сообщение от Troo Посмотреть сообщение
TrueBit, а объясните пожалуйста почему именно такие функции

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
char* Rtolower (char *s)
{
    for (int i=0;i<(int)strlen(s);i++)
        if (-128<=s[i] && s[i]<=-113) // rus1
            s[i]+=32;
        else if(-112<=s[i] && s[i]<=-97) // rus2
            s[i]+=80;
        else if(65<=s[i] && s[i]<=90) // en
            s[i]+=32;
    return s;
}
char* Rtoupper (char *s)
{
    for (int i=0;i<(int)strlen(s);i++)
        if ((-128+32)<=s[i] && s[i]<=(-113+32)) // rus1
            s[i]-=32;
        else if((-112+80)<=s[i] && s[i]<=(-97+80)) // rus2
            s[i]-=80;
        else if((65+32)<=s[i] && s[i]<=(90+32)) // en
            s[i]-=32;
    return s;
}
исходя из значений 866 кодовой страницы ASCII кодов ( http://www.krles.ru/images/ad/ascii.pdf )

Вот можете по экспериментировать(если использовать без знаковый тип: unsigned char, то таблица будет полностью соответствовать, если знаковый то все символы после 127 будет начинаться с максимального отрицательного и до 0):

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream> 
#include <limits>
using namespace std;
 
int main() {
    /*for(int i=0; i<(int)numeric_limits<=unsigned char>::max(); i++)
        printf("[%3d] = %c\n",i,unsigned char(i));*/
    for(int i=numeric_limits<char>::min(); i<=(int)numeric_limits<char>::max(); i++)
        printf("[%3d] = %c\n",i,char(i));
}
кодовая таблица приложена к сообщению
Миниатюры
Перевод строк в верхний и нижний регистры не работает для кириллицы  
 
Текущее время: 02:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru