0 / 0 / 0
Регистрация: 22.09.2015
Сообщений: 36
1

Изменение регистра символов

17.11.2015, 15:37. Показов 17000. Ответов 7

есть задачка, нужно изменить регистр всех символов ряда на противоположный.
Я пытался написать пограмму, но у меня не получается (изменяет через одну и выбивает ошибку)
вот сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <conio.h>
#include <string.h>
 
int main()
{
    setlocale(LC_CTYPE, "rus"); 
    int i;
    char A[100];
    std::cout << "Введите текст" << "\n";
    std::cin.get(A,100);
    for (int i = 0; i < 100; i++) {
        char k = A[i];
        
        if (islower(A[i])) 
            strupr(A);  
        else strlwr(A);
        std::cout << k;
    }
    
     system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2015, 15:37
Ответы с готовыми решениями:

Доработать код: изменение регистра символов, считанных из файла
Добрый вечер уважаемые мастера! Вот решаю одну задаю ,уже написал такой код #include...

Изменение регистра в строке
Есть список фамилий, если фамилия введена с маленькой буквы, то исправить на заглавную....

Изменение регистра строки
Принимаем строку с клавиатуры. С пом. функции getline(). string clientName;...

Изменение регистра символа
доброго времени суток почему не преобразовывает регистр символа с на С ? и как исправить (без...

7
13 / 13 / 6
Регистрация: 29.09.2015
Сообщений: 38
17.11.2015, 15:40 2
C++
1
2
3
4
 if (islower(A[i])) 
            strupr(A[i]);  
        else strlwr(A[i]);
        std::cout << A[i];
0
0 / 0 / 0
Регистрация: 22.09.2015
Сообщений: 36
17.11.2015, 15:53  [ТС] 3
alexvikt, ошибка
"Ошибка C2664 "char *strupr(char *)": невозможно преобразовать аргумент 1 из "char" в "char *
аргумент типа "char" несовместим с параметром типа "char *"
в твоих строках 2 и 3
0
В астрале
Эксперт С++
8042 / 4799 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
17.11.2015, 16:02 4
strupr/strlwr работают с указателем и не являются стандартными. Подключите заголовочный файл cctype и используйте toupper/tolower.
C++
1
2
3
4
5
        if (islower(k)) 
            k = toupper(k);  
        else 
           k = tolower(k);
        std::cout << k;
0
0 / 0 / 0
Регистрация: 22.09.2015
Сообщений: 36
17.11.2015, 16:07  [ТС] 5
ForEveR, если приписывать "к =" то выбивает теже ошибки, если изменять "strupr/strlwr " на "toupper/tolower" то ничего не изменяется
0
83 / 10 / 8
Регистрация: 17.11.2015
Сообщений: 39
17.11.2015, 16:08 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <locale>
 
int main() {
  std::string str = "";
  
  std::getline(std::cin, str);
  
  std::string result = "";
  
  for (std::string::size_type i = 0; i < str.length(); ++i) {
      if (std::isupper(str[i])) result.push_back(std::tolower(str[i]));
      else result.push_back(std::toupper(str[i]));
  }
  
  std::cout << result;
  
  return 0;
}
0
В астрале
Эксперт С++
8042 / 4799 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
17.11.2015, 16:11 7
Цитата Сообщение от Okas43 Посмотреть сообщение
ForEveR, если приписывать "к =" то выбивает теже ошибки, если изменять "strupr/strlwr " на "toupper/tolower" то ничего не изменяется
Я ж показал пример кода... Вы выводите k, поэтому я его и изменяю. Если это не работает - показывайте код который получился после изменения.
0
0 / 0 / 0
Регистрация: 22.09.2015
Сообщений: 36
17.11.2015, 16:17  [ТС] 8
ForEveR, сорян, не так записал, спасибо за правильный ответ
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2015, 16:17
Помогаю со студенческими работами здесь

Изменение регистра символа от условия
У меня стоит задача, изменять регистр символов на противоположный, если строковая переменная: ...

Изменение регистра букв в файле
В файле test.in записан текст на английском языке. Как изменить регистр алфавитных символов?...

Изменение регистра в строках | Задача
A. cAPS lOCK Ограничение по времени на тест 0.5 second Ограничение по памяти на тест 256...

Инвертирование регистра символов
char str; cin.getline(str,n); for(int i=0;i&lt;strlen(str);i++){ if(islower(str)){...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru