Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/47: Рейтинг темы: голосов - 47, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 15
1

Поменять все строчные буквы на прописные, прописные на строчные

25.12.2014, 21:31. Показов 9348. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана строка с некоторым текстом. Составить программу, которая меняет в этом тексте все строчные буквы на прописные, прописные на строчные и исключает все символы, не являющиеся буквами, кроме пробелов.
Не получается почистить от ненужных значений и так, чтобы не удалить пробелы, с регистрами разобралась, ребята, выручайте

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "stdafx.h"
#include <string>
#include <iostream>
#include <ctype.h>
    using namespace std;
 
    int main()
    {
        string line;
        cout << "Enter text: " << endl;
        getline(cin, line);
        int size = line.length();
        for (int i = 0; i < size; ++i)
        {
            do{
                    line.erase(i, 1); // удаляет из строки символ с индексом i
            } while (isalpha(line[i]) != 0);
            if (islower(line[i]))//нижний регистр?
            {
                line[i] = toupper(line[i]);//если да, то подними
            }
            else
            {
                line[i] = tolower(line[i]);//иначе ты в верхнем - в нижний регистр
            }
        }
        cout <<line<< endl;
        system("pause");
        return 0;
    }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2014, 21:31
Ответы с готовыми решениями:

Преобразовать в строке все строчные буквы (как латинские, так и русские) в прописные, а прописные — в строчные
Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и русские) в прописные, а...

Преобразовать все строчные буквы(как латинские, так и русские) в прописные, а прописные в строчные
Дана строка. Преобразовать в ней все строчные буквы(как латинские, так и русские) в прописные, а...

Заменить в текстовом файле все прописные латинские буквы на строчные, а все малые - на прописные
Дано имя файла и целые положительные числа N и K. Создать текстовый файл с указанным именем и...

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

9
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
25.12.2014, 21:42 2
Цитата Сообщение от Мария_1997 Посмотреть сообщение
C++
1
2
3
do{
    line.erase(i, 1); // удаляет из строки символ с индексом i
} while (isalpha(line[i]) != 0);
Сначала удалили, потом проверили?
0
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 15
25.12.2014, 21:56  [ТС] 3
C++
1
2
3
4
while (isalpha(line[i]) != 0)
{
                line.erase(i, 1); // удаляет из строки символ с индексом i
}
Погоды особо не делает)
готова выслушать вашу версию)
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
25.12.2014, 22:00 4
Цитата Сообщение от Мария_1997 Посмотреть сообщение
Погоды особо не делает)
Интересное замечание. А если сказать, что просто глупость написали?
0
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 15
25.12.2014, 22:03  [ТС] 5
Возможно и глупость, в тупике я, а вы ещё и издеваетесь, помогли бы
0
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
25.12.2014, 22:04 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
    std::string str = "hELLO_ _wORLD>";
 
    for (int i = 0; i < str.length(); ++i) 
    {
        if (!isalpha(str[i]))
            str.erase(str.begin() + i);
 
        if (isupper(str[i]))
            str[i] = tolower(str[i]);
        else
            str[i] = toupper(str[i]);
    }
 
    std::cout << str << std::endl;
 
    return 0;
}
1
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 15
25.12.2014, 22:11  [ТС] 7
Спасибо вам, выручили всё ж)
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
25.12.2014, 22:38 8
Лучший ответ Сообщение было отмечено Мария_1997 как решение

Решение

Цитата Сообщение от Мария_1997 Посмотреть сообщение
Спасибо вам, выручили всё ж)
Это ещё и работает? Чудеса!

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <string>
#include <iostream>
#include <ctype.h>
using namespace std;
 
int main()
{
    string line;
    cout << "Enter text: " << endl;
    getline(cin, line);
    
    int size = line.size();
    int i = 0;
    while (i < size)
    {
        if (islower(line[i]))
            line[i] = toupper(line[i]);
        else
            line[i] = tolower(line[i]);
        
        if (!isalpha(line[i]) && line[i] != ' ')
        {
            line.erase(i, 1); 
            size = line.size();
        }
        else
            ++i;
    }
        
    cout <<line<< endl;
   
    system("pause");
}
1
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 15
25.12.2014, 22:51  [ТС] 9
Спасибо вам большущее, ваш код и правда лучше))
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
25.12.2014, 23:19 10
Цитата Сообщение от Мария_1997 Посмотреть сообщение
ваш код и правда лучше))
Не в этом дело, в коде Issues, ошибка есть (я не о том, что там и пробелы будут удаляться).
0
25.12.2014, 23:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2014, 23:19
Помогаю со студенческими работами здесь

Заменить все строчные буквы в строке на прописные
Создайте программу, позволяющую пользователю вводить строки с клавиатуры. Замените в программе все...

Преобразовать в строке все прописные латинские буквы в строчные
Дана строка. Преобразовать в ней все прописные латинские буквы в строчные. Добавлено через 34...

Преобразовать в строке все прописные латинские буквы в строчные.
Дана строка. Преобразовать в ней все прописные латинские буквы в строчные.(с использованием...

Заменить в строке все прописные буквы на строчные, и наоборот
Как можно на С заменить все прописные буквы на строчные. И на оборот?


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru