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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.87
Сатсухару
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 8
#1

Нижний регистр - C++

05.10.2009, 12:17. Просмотров 2922. Ответов 15
Метки нет (Все метки)

Помогите пожалуйста с заданием. Как правильно написать. А то мучалась, так ни чего не смогла сделать.
Задание:
Написать программу, печатающую все вводимые символы в нижнем регистре.
Программа должна использовать цикл while. Входные данные поступают с
клавиатуры. Предусмотреть обработку ошибок
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2009, 12:17     Нижний регистр
Посмотрите здесь:

Преобразование в нижний регистр - C++
Здравствуйте! Почему это не работает (результат неизменен): #include <Windows.h> #include <stdio.h> void...

Строку в нижний регистр - C++
вводится русская строка (слово ) кодировка 1251, необходимо привести ее к нижнему регистру #include <ctype.h> #include <locale.h> ...

Перевод в нижний регистр - C++
Есть строка стринг в которой записана кириллица, нужно перевести ее в нижний регистр.

Перевод в нижний регистр - C++
Приветствую . Прошу помощи , выдаёт ошибку при переводе в нижний регистр , в чём проблема ? #include <vector> #include <fstream> ...

Перевод букв в нижний регистр - C++
Как перевести все буквы строки введенной с клавиатуры в нижний регистр?

Перевод символа в нижний регистр - C++
Привет всем)) у меня такой вопрос: почему функция tolower() возвращает не символ в нижнем регистре, а какие-то цифры (наверное код буквы)....

Русские символы в нижний регистр в С++ (debian) - C++
Здравствуйте! Начал изучать С++ (пора бы уже //.о) и где-то за пол месяца начинает что-то более - менее получаться. Поднимаю проблему...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,864
Завершенные тесты: 1
05.10.2009, 12:18     Нижний регистр #2
Сатсухару, покажи, что ты там уже намучала
Сатсухару
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 8
05.10.2009, 12:30  [ТС]     Нижний регистр #3
В принцыпе я не знаю как объявляется флаг нижнего регистра. Верхний прописан в учебнике, а нижний нет
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,864
Завершенные тесты: 1
05.10.2009, 12:58     Нижний регистр #4
Сатсухару, зачем вам флаги, берете charmap.exe и смотрите в system - какие коды отвечают за большие символы. а какие за маленькие... вообще в принципе есть функции isupper, islower, toupper, tolower, но они не рабоают с кириллицей....

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
int main()
{
    int i = 0;
    unsigned char str[256];
    cout << "enter string:" << endl;
    cin.getline((char*)str, 255);
    while(str[i]){
      if(isupper(str[i])) str[i] = tolower(str[i]);
      i++;
    }
    cout<<str<<endl;
    return 0;
}
Сатсухару
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 8
05.10.2009, 13:24  [ТС]     Нижний регистр #5
VoodooMan,
Спасибо большое за помощь. Хоть с мертвой точки сдвинусь. Хотя такой момент переводит в нижний регистр только если убрать unsigned перед чаром. А без него кирилецу не печатает. Но мне это не так и важно. Благодарна за помощь
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,864
Завершенные тесты: 1
05.10.2009, 13:53     Нижний регистр #6
Сатсухару, да погоди, это решение не предполагает работу с кирилицей, а символы все равно должны быть беззнаковыми, иначе кириллица - с отрицательными значениями:
что-то вроде такого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
    system("chcp 1251");
    int i = 0;
    char str[256] = "df;lkjдловылдОЛДОдлволдГРРОЛПолвыорОЛРЛОРЛО";
    //cout << "enter string:" << endl;
    //cin.getline(str, 255);
    while(str[i]){
      if((unsigned char)str[i] >= 0xC0 && (unsigned char)str[i] <= 0xDF){
        str[i] = (unsigned char)str[i] + 0x20;
      }else if(isupper(str[i])) str[i] = tolower(str[i]);
      i++;
    }
    cout<<str<<endl;
    return 0;
}
Сатсухару
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 8
05.10.2009, 14:03  [ТС]     Нижний регистр #7
VoodooMan,
Для этого в программе и идет обработка ошибок. Программа будет закрыватся если будет отрицательно. Я это уже сделала. Сейчас это посмотрю ещё.
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,864
Завершенные тесты: 1
05.10.2009, 14:06     Нижний регистр #8
Сатсухару, а кто вам сказал, что отрицательное есть неверно, это просто кириллица
Сатсухару
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 8
05.10.2009, 14:09  [ТС]     Нижний регистр #9
VoodooMan,
Ну это в принцыпе нужно исключить по заданию, если не ошибаюсь. Я не говорю, что это не верно
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,864
Завершенные тесты: 1
05.10.2009, 14:18     Нижний регистр #10
Сатсухару, вот я про ошибки ничего не придумал, вот и ничего не написал, а код хоть пойдет?
Сатсухару
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 8
05.10.2009, 14:23  [ТС]     Нижний регистр #11
VoodooMan, да с кодом вы мне помогли. Сижу вот делаю вторую часть задания. Вот вопрос такой. Есть ли смысл пытатся перевести буквы в 10-ую, 16-ую и 8-ую системы?
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,864
Завершенные тесты: 1
05.10.2009, 14:30     Нижний регистр #12
Сатсухару, это смотря для чего...
Сатсухару
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 8
05.10.2009, 14:34  [ТС]     Нижний регистр #13
VoodooMan,
ну вот лично для этой программы. В общем задание полностью звучит так.
Написать программу, печатающую все вводимые символы в нижнем регистре.
Программа должна использовать цикл while. Входные данные поступают с
клавиатуры. Предусмотреть обработку ошибок. Результат выводится на экран в
десятичной, шестнадцатеричной и восьмеричной системе. Установить ширину
поля 10 символов, установить точность 4 цифры, заполнить вместо пробелов
символом & с помощью функций и манипуляторов.


Просто спросить совет. Стоит ли с системами мудохкатся или легче с преподом поспорить?!
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,864
Завершенные тесты: 1
05.10.2009, 14:41     Нижний регистр #14
Сатсухару, вообще в задании все четко оговорено, что тут уже спорить, делать надо
Сатсухару
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 8
05.10.2009, 14:45  [ТС]     Нижний регистр #15
VoodooMan, говорится то говорится, ладно помучаюсь. А за помощь спасибо^^
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2009, 15:53     Нижний регистр
Еще ссылки по теме:

Преобразовать текст файла в нижний регистр - C++
Записать в данный файл все слова в том же порядке но большие латинськилитеры заменить на малые . помогите решить очень нужно...

Переход в нижний регистр с верхнего в русском языке - C++
Здравствуйте, при переходе строки из верхних регистров в нижний, прога этого не делает, с английским все нормально в чем проблема сам...

Не работает замена символов в файле на нижний регистр - C++
Почему не работает код? По идее должен символы в файле заменить на нижний регистр. int main() { string way = &quot;Example.txt&quot;; ...

Кроссплатформенный перевод русских букв в верхний/нижний регистр - C++
Добрый день. В прикрепленном топике описываются способы вывода русских букв на консоль. Но они почти все подвязаны под винду. Более...

Преобразование строки сначала в верхний регистр, потом в нижний - C++
Напишите программу, которая преобразовывает все символы введенной строки сначала в верхний регистр затем в нижний регистр а затем заменяет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
11.10.2009, 15:53     Нижний регистр #16
C++
1
2
3
4
5
6
7
8
9
string LowStr(string str)
{
  //DWORD CodePage=0x419;
  for(int i=0; (i+1)<(int)str.length(); i++)
  {
    if(isupper(str[i]))str[i]=tolower(str[i]);
  }
  return str;
}
Работает но только с латиницей. Как сделать что бы ещё и русские символы прожёвывал?
Yandex
Объявления
11.10.2009, 15:53     Нижний регистр
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru