Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 328
1

Преобразование всех строчных букв в прописные, а прописных — в строчные

12.02.2016, 18:33. Показов 4430. Ответов 5
Метки нет (Все метки)

Задача:Код строчных букв ASCII отличается от кода прописных на 32. Таким образом, чтобы преобразовать строчную букву в прописную, необходимо вычесть из её кода число 32. Используйте эту информацию при написании программы, которая бы считывала символы с клавиатуры. Перед отображением результата обеспечьте преобразование всех строчных букв в прописные, а все прописные — в строчные. Другие же символ никаким изменениям подвергаться не должны. Организуйте завершение программы после ввода пользователем символа "точка". Перед завершением программа
должна отобразить количество выполненных преобразований (изменений регистра).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Я сделал по своему
#include <iostream>
#include <clocale>
#include <cctype>
using namespace std;
 
int main()
{
setlocale(0,"");
    int a;
cout<<"Введите количество букв:";cin>>a;
    char mas[a];
cout<<"Введите буквы:\n";
   for(int i=0;i<a;i++){cin>>mas[i];}
   for(int i=0;i<a;i++){
      if(islower(mas[i])){toupper(mas[i]);}//Вот этот участок 
      if(isupper(mas[i])){tolower(mas[i]);}//не выполняется
cout<<mas[i]<<endl;}
return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2016, 18:33
Ответы с готовыми решениями:

Замена в исходной строке всех строчных русских и латинских букв на прописные, а прописные – на строчные
При создании новой строки используйте класс StringBuffer. Напишите метод, который принимает в...

Перевод прописных символов введенной строки в строчные и строчных в прописные
1. Разработать программу перевода прописных символов введенной строки в строчные и строчных в...

Преобразование прописных букв в строчные
Напишите программу, которая преобразует прописные буквы в строчные. Я не понимаю как это сделать...

Преобразование прописных букв в строчные
Ребят, помогите пожалуйста срочно! Не могу найти решение этой задачи: Дана стока. Преобразовать...

5
nd2
3411 / 2791 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
12.02.2016, 19:15 2
Цитата Сообщение от Tancist Посмотреть сообщение
C++
1
2
if(islower(mas[i])){toupper(mas[i]);}//Вот этот участок 
if(isupper(mas[i])){tolower(mas[i]);}//не выполняется
C++
1
2
    if(islower((unsigned char)mas[i])){mas[i] = toupper((unsigned char)mas[i]);}
    else if(isupper((unsigned char)mas[i])){mas[i] = tolower((unsigned char)mas[i]);}
1
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 328
12.02.2016, 19:30  [ТС] 3
Цитата Сообщение от nd2 Посмотреть сообщение
C++
1
(unsigned char)
а зачем это?
0
nd2
3411 / 2791 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
12.02.2016, 19:37 4
Лучший ответ Сообщение было отмечено Tankist 90 как решение

Решение

Цитата Сообщение от Tancist Посмотреть сообщение
а зачем это?
Для функций cctype нужно, иначе, возможно UB.

Добавлено через 3 минуты
...
The header <ctype.h> declares several functions useful for classifying and mapping characters. In all cases the argument is an int, the value of which shall be representable as an unsigned char or shall equal the value of the macro EOF. If the argument has any other value, the behavior is undefined.
1
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 328
12.02.2016, 19:49  [ТС] 5
Спасибо, не знал, мы только начали это проходить.
0
nd2
3411 / 2791 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
12.02.2016, 19:54 6
Цитата Сообщение от Tancist Посмотреть сообщение
Спасибо, не знал, мы только начали это проходить.
Проявится, если кириллица, и char знаковый.
Существует одна тонкость, касающаяся преобразования символов в целые числа: язык не определяет, являются ли переменные типа char знаковыми или беззнаковыми. Может ли при преобразовании char в int когда-нибудь получиться отрицательное число? На машинах с разной архитектурой ответы могут отличаться. На некоторых машинах значение типа char у которого старший бит равен единице будет преобразовано в отрицательное число (так называемое «распространение знакового разряда»). На других — преобразование char в int осуществляется путем добавления нулей слева, и, таким образом, получаемое значение всегда положительно.

Гарантируется, что любой символ из стандартного набора печатаемых символов никогда не будет отрицательным числом, поэтому в выражениях такие символы всегда являются положительными операндами. Но произвольный восьмибитовый код в переменной типа char на одних машинах может быть отрицательным числом, а на других — положительным. Для совместимости переменные типа char, в которых хранятся данные не являющиеся символами, следует явно определять как signed или unsigned.
В языке C++ для хранения однобайтового символа используется тип данных char. Переменную типа char можно рассматривать двояко: как целое число, занимающее 1 байт и способное принимать значения от -128 до 127 (тип signed char, есть также беззнаковая модификация unsigned char, принимающая значения от 0 до 255) и как один символ текста. Само по себе определение char может оказаться как знаковым, так и беззнаковым, в зависимости от операционной системы и компилятора. Поэтому использовать тип char не рекомендуется, лучше явно указывать будет ли он знаковым (signed) или беззнаковым (unsigned).
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2016, 19:54

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Преобразование строчных букв в прописные
Помогите с программой: Написать программу, которая во введённой с клавиатуры строке преобразует...

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

Преобразование определенных букв из прописных в строчные
Задача: Составить программу, которая преобразует буквы &quot;А&quot;, &quot;Б&quot;, &quot;В&quot; из прописных букв в строчные....

Подсчёт количества прописных и строчных букв и преобразование строки
Надо подсчитать в строке количество прописных и строчных букв и преобразовать строку соответственно...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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