@Annie96

Что нужно сделать, чтобы свернуть в функцию?

Начиная от цикла (от места, где начинается непосредственно работа со строками) завернуть в функцию.
И ещё, может кто посоветует как через инклуд её включить? Но пока главная задача разобраться с тем, как свернуть.
#include "stdafx.h"
#include <string>
#include <iostream>
#include <ctype.h>
#include <windows.h>
using namespace std;
 
int main()
{
    setlocale(0, "");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string line;
    cout << "Enter text: " << endl;
    getline(cin, line);
 
    int size = line.size();
    int i = 0;
    while (i < size)
    {
        if (islower((unsigned char)line[i]))
 
            line[i] = toupper((unsigned char)line[i]);
        else
            line[i] = tolower((unsigned char)line[i]);
 
        if (!isalpha((unsigned char)line[i]) && line[i] != ' ')
        {
            line.erase(i, 1);
            size = line.size();
        }
        else
            ++i;
    }
 
    cout << line << endl;
    system("pause");
}
  • Вопрос задан
  • 2317 просмотров
Решения вопроса 1
@Beltoev
Живу в своё удовольствие
Сама функция (так как никаких результатов не отдаем, возвращаем пустое значение)
void func(std::string& str)
{
    int size = str.size();
    int i = 0;
    while (i < size)
    {
        if (islower((unsigned char)str[i]))
 
            str[i] = toupper((unsigned char)str[i]);
        else
            str[i] = tolower((unsigned char)str[i]);
 
        if (!isalpha((unsigned char)str[i]) && str[i] != ' ')
        {
            str.erase(i, 1);
            size = str.size();
        }
        else
            ++i;
    }
}


Ну, и её использование:
int main()
{
    setlocale(0, "");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string line;
    cout << "Enter text: " << endl;
    getline(cin, line);
 
    func(line);
 
    cout << line << endl;
    system("pause");
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы