
Добавил:
BlackCat
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:2 семестр ФИБС / Информатика / 4 практика / pr_2_4
.cpp#include <iostream>
#include <windows.h>
class string {
char str[80];
int length;
public:
void input();
void output();
int check_symbols();
int check_a();
int words_number();
void Run();
string& operator= (string &s1)
{
strcpy(str, s1.str);
length = s1.length;
return *this;
}
};
void string::input()
{
printf("Введите строку.\n");
gets(str);
length = strlen(str);
}
void string::output() {
printf("Ваша строка: ");
puts(str);
printf("Длина строки: %d\n", length);
}
int string::check_symbols() {
int check = 0;
for (int i = 0; i < length; i++) {
if (((str[i] > 0)&&(str[i] < 32))||((str[i] > 33)&&(str[i] < 65))||((str[i] > 90)&&(str[i] < 97))||((str[i] > 122)&&(str[i] < 128))||(str[i] > 175))
check = 1;
}
if (check == 1)
printf("В строке присутствуют символы, отличные от букв.\n");
else
printf("В строке только буквы.\n");
}
int string::check_a()
{
int check = 0;
if ((str[0] == 192)||(str[0] == 224)||(str[0] == 97)||(str[0] == 65)) check = 1;
if (check == 1) printf("Строка начинается с буквы А.");
else printf("Строка начинается не с буквы А.");
}
int string::words_number() {
int amount = 1;
for (int i = 0; i < length; i++)
{
if (str[i] == 32) amount = amount + 1;
else amount = amount;
}
printf("\nКоличество слов: %d\n", amount);
return amount;
}
void string::Run() {
int j, new_length = 0;
if (length > 15)
for (int i = 0; i < length; i++)
if (!((str[i] > 96)&&(str[i] < 123)))
new_length = new_length + 1;
char new_str[new_length];
for (int i = 0; i < length; i++) if (!((str[i] > 96)&&(str[i] < 123)))
{
new_str[j++] = str[i];
}
strcpy(str, new_str);
length = new_length;
}
int main(int argc, char** argv) {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
class string S1, S2;
S1.input();
S1.output();
S1.check_symbols();
S1.check_a();
S1.words_number();
S2 = S1;
S2.Run();
S2.output();
}
Соседние файлы в папке 4 практика