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

Уровень сложности:

 

Программа должна выполнять преобразования строки (длина строки 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;
}


Результат работы программы вы можете увидеть ниже:

CppStudio.com
Введите строку 

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
Следующие статьи помогут вам в решении данной задачи:
Автор: admin
Дата: 12.09.2012
Поделиться:

Комментарии

  1. Amoromul

    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Выход из программы - нажмите 'ф': ";
    }

     

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.