C++

Манипуляции со строками в Си/С++

Программа должна выполнять преобразования строки (длина строки 255 символов):

СТРОКА ЗАГЛАВНЫМИ БУКВАМИ
строка в нижнем регистре
С Заглавной Буквы (Первый Символ Каждого Слова В Строке )
пЕРВЫЙ сИМВОЛ в нИЖНЕМ рЕГИСТРЕ
Как в предложении(с заглавной буквы).
Символ 'f' — выход из программы
Организовать в программе меню, через которое можно удобно выбирать любое действие. Программа должна выполняться пока пользователь не введет символ 'f'.

Чтобы преобразовать строчные буквы в прописные в С++ есть функция toupper. Для преобразования строки в нижний регистр используем функцию tolower. Остальные преобразования можно выполнить также с помощью функций библиотеки cctype.

Результат работы вашей программы не обязательно должен совпадать с выводом, который предоставлен у нас на сайте. Основная задача — это реализовать набор задач, которые программа должна выполнять.
Введите строку

This program is written Dmitry Kozharsky
Для преобразования строки в заглавные буквы нажмите : 1
Для преобразования строки в нижний регистр нфжмите : 2
Для преобразования строки с Заглавной Буквы нажмите : 3
Для преобразования строки в первый символ в нижнем регистре нажмите : 4
Для преобразования строки как в обычном предложении нажмите : 5
Для выхода нажмите : f

Введите необходимое действие : 1

THIS PROGRAM IS WRITTEN DMITRY KOZHARSKY
Для преобразования строки в заглавные буквы нажмите : 1
Для преобразования строки в нижний регистр нфжмите : 2
Для преобразования строки с Заглавной Буквы нажмите : 3
Для преобразования строки в первый символ в нижнем регистре нажмите : 4
Для преобразования строки как в обычном предложении нажмите : 5
Для выхода нажмите : f

Введите необходимое действие : 2

this program is written dmitry kozharsky
Для преобразования строки в заглавные буквы нажмите : 1
Для преобразования строки в нижний регистр нфжмите : 2
Для преобразования строки с Заглавной Буквы нажмите : 3
Для преобразования строки в первый символ в нижнем регистре нажмите : 4
Для преобразования строки как в обычном предложении нажмите : 5
Для выхода нажмите : f

Введите необходимое действие : 3

This Program Is Written Dmitry Kozharsky
Для преобразования строки в заглавные буквы нажмите : 1
Для преобразования строки в нижний регистр нфжмите : 2
Для преобразования строки с Заглавной Буквы нажмите : 3
Для преобразования строки в первый символ в нижнем регистре нажмите : 4
Для преобразования строки как в обычном предложении нажмите : 5
Для выхода нажмите : f

Введите необходимое действие : 4

tHIS pROGRAM iS wRITTEN dMITRY kOZHARSKY
Для преобразования строки в заглавные буквы нажмите : 1
Для преобразования строки в нижний регистр нфжмите : 2
Для преобразования строки с Заглавной Буквы нажмите : 3
Для преобразования строки в первый символ в нижнем регистре нажмите : 4
Для преобразования строки как в обычном предложении нажмите : 5
Для выхода нажмите : f

Введите необходимое действие : 5

This program is written dmitry kozharsky
Для преобразования строки в заглавные буквы нажмите : 1
Для преобразования строки в нижний регистр нфжмите : 2
Для преобразования строки с Заглавной Буквы нажмите : 3
Для преобразования строки в первый символ в нижнем регистре нажмите : 4
Для преобразования строки как в обычном предложении нажмите : 5
Для выхода нажмите : f

Введите необходимое действие : f


#include <iostream>
#include <cstring>
 
using namespace std;
 
char menu();
void operation1(char*);
void operation2(char*);
void operation3(char*);
void operation4(char*);
void operation5(char*);
 
int main(){
setlocale(0,"");
cout << "Введите строку \n\n";
char string[255];
memset(string, 0, sizeof(string));
cin.getline(string, 255);
char operation;
operation = menu();
 
while (operation != 'f'){
   if (operation != '1' & operation != '2' & operation != '3'& operation != '4'& operation != '5'){
                 cout << "Введеный символ не соответствует условию. \nПовторите попытку \n\n";
                 }
   else{
        if (operation == '1')
                      operation1(string);
        if (operation == '2')
                      operation2(string);
        if (operation == '3')
                      operation3(string);
        if (operation == '4')
                      operation4(string);
        if (operation == '5')
                      operation5(string);
        }
   operation = menu();
   }
//system("pause");
}
 
char menu(){
  char operation;
  cout << "Для преобразования строки в заглавные буквы нажмите : 1" << endl;
  cout << "Для преобразования строки в нижний регистр нфжмите : 2" << endl;
  cout << "Для преобразования строки с Заглавной Буквы нажмите : 3" << endl;
  cout << "Для преобразования строки в первый символ в нижнем регистре нажмите : 4" << endl;
  cout << "Для преобразования строки как в обычном предложении нажмите : 5" << endl;
  cout << "Для выхода нажмите : f" << endl;
  cout << endl;
  cout << "Введите необходимое действие : ";
  cin >> operation;
  cout << "\n\n";
  return operation;
}
 
void operation1(char *p){
  while (*p != '\0'){
    *p = (char)toupper(*p);
    cout << *p;
    p++;
  }
  cout << endl;
}
 
void operation2(char *p){
  while (*p != '\0'){
    *p = (char)tolower(*p);
    cout << *p;
    p++;
  }
  cout << endl;
}
 
void operation3(char *p){
  *p = (char)toupper(*p);
  while (*p != '\0'){
    if(!isspace(*p)){
      cout << *p;
      p++;
      *p = (char)tolower(*p);
    }
    else{
     cout << *p;
     p++;
     *p = (char)toupper(*p);
   }
  }
  cout << endl;
}
 
void operation4(char *p){
  *p = (char)tolower(*p);
   while (*p != '\0'){
   if(!isspace(*p)){
     cout << *p;
     p++;
     *p = (char)toupper(*p);
    }
   else{
      cout << *p;
      p++;
      *p = (char)tolower(*p);
    }
   }
  cout << endl;
}
 
void operation5(char *p){
  *p = (char)toupper(*p);
   cout << *p;
   p++;
    while (*p != '\0'){
      if(*p != '.'){
        *p = (char)tolower(*p);
        cout << *p;
        p++;
      }
      else{
        cout << *p;
        p++;
        cout << *p;
        p++;
        *p = (char)toupper(*p);
        cout << *p;
        p++;
      }
    }
  cout << endl;
}
Теги:
строка
Добавлено: 11 Апреля 2018 09:58:53 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...