Программа должна выполнять преобразования строки (длина строки 255 символов):
- СТРОКА ЗАГЛАВНЫМИ БУКВАМИ
- строка в нижнем регистре
- С Заглавной Буквы (Первый Символ Каждого Слова В Строке )
- пЕРВЫЙ сИМВОЛ в нИЖНЕМ рЕГИСТРЕ
- Как в предложении(с заглавной буквы).
- Символ
'f'— выход из программы
Организовать в программе меню, через которое можно удобно выбирать любое действие. Программа должна выполняться пока пользователь не введет символ 'f'.
Чтобы преобразовать строчные буквы в прописные в С++ есть функция toupper. Для преобразования строки в нижний регистр используем функцию tolower. Остальные преобразования можно выполнить также с помощью функций библиотеки cctype.
Результат работы вашей программы не обязательно должен совпадать с выводом, который предоставлен у нас на сайте. Основная задача — это реализовать набор задач, которые программа должна выполнять.
#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 << "Введите строку nn";
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Повторите попытку nn";
}
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 << "nn";
return operation;
}
void operation1(char *p){
while (*p != ''){
*p = (char)toupper(*p);
cout << *p;
p++;
}
cout << endl;
}
void operation2(char *p){
while (*p != ''){
*p = (char)tolower(*p);
cout << *p;
p++;
}
cout << endl;
}
void operation3(char *p){
*p = (char)toupper(*p);
while (*p != ''){
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 != ''){
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 != ''){
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;
}
Результат работы программы вы можете увидеть ниже:
Введите строку 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
Комментарии
Amoromul
Работает с англ. текстом. но с русским не хочет. Посмотрите, вот исходник. А так, в принципе, задача решена:)
#include <iostream> #include <cctype> #include <windows.h> using namespace std; void messege(); int main(int argc, const char * argv[]) { SetConsoleCP(1251); SetConsoleOutputCP(1251); int size; char string[255]; char switcher; cout << "Enter the string: "; gets_s(string); size = strlen(string); for (;;) { cout << endl << endl << "Ваша исходная строка: " << string; messege(); cout << "\nВаш выбор: "; cin >> switcher; switch (switcher) { case '1': cout << "Вот, что получилось: "; for (int i = 0; i < size; i++) cout << (char)toupper(string[i]); break; case '2': cout << "Вот, что получилось: "; for (int i = 0; i < size; i++) cout << (char)tolower(string[i]); break; case '3': cout << "Вот, что получилось: "; cout << (char)toupper(string[0]); for (int i = 1; i < size; i++) { if (string[i] == ' ') { cout << string[i]; string[i + 1] = (char)toupper(string[i + 1]); cout << string[i+1]; i++; } else if (string[i] != ' ') cout << string[i]; } break; case '4': cout << "Вот, что получилось: "; cout << (char)tolower(string[0]); for (int i = 1; i < size; i++) { if (string[i] == ' ') { cout << string[i]; string[i + 1] = (char)tolower(string[i + 1]); cout << (char)tolower(string[i + 1]); i++; } else cout << (char)toupper(string[i]); } break; case '5': cout << "Вот, что получилось: "; cout << (char)toupper(string[0]); for (int i = 1; i < size; i++) cout << string[i]; break; } if (switcher == 'f' || switcher == 'F' || switcher == 'ф'|| switcher == 'Ф') break; } system("pause"); return 0; } void messege() { cout << "\nВсе буквы большие - нажмите 1: "; cout << "\nВсе бквы маленькие - нажмите 2: "; cout << "\nБольшая буква (первая буква каждого слова в строке) - нажмите 3: "; cout << "\nПервая буква каждого слова маленькая - нажмите 4: "; cout << "\nКак в предложении (с большой буквы) - нажмите 5: "; cout << "\nВыход из программы - нажмите 'ф': "; }