Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 4
1

Написать программу, которая считывает с клавиатуры строку символов, и имеет функцию, которая возвращает значения

12.01.2022, 00:06. Показов 912. Ответов 8

Author24 — интернет-сервис помощи студентам
Написать программу, которая считывает с клавиатуры строку символов, и имеет функцию, которая возвращает значение 1, если строка состоит только с букв, значение 2, если строка состоит только из цифр, и значение 3 в других случаях.

Важные моменты: делать через библиотеку <cstring>, считывать через gets.

Вот что у меня получилось, но у меня проблемы с функциями и типами

Код
#include <iostream>
#include <cstring>
using namespace std;
int check_str(char str);
int main()
{
	setlocale(LC_ALL, "Russian");
	char str[100];
	cout << "Введите строку:" << endl;
	cin >> str;
	cout << endl;
	if (check_str(str) == 1) {
		cout << "Эта строка из одних букв" << endl;
	}
	else if (check_str(str) == 2) {
		cout << "Эта строка из одних цифр" << endl;
	}
	else if (check_str(str) == 3) {
		cout << "Эта строка не только из одних букв или цифр" << endl;
	}
	return 0;
}
int check_str(char str) {
	if ((isalpha(str)) != 0) {
		return 1;
	}
	else if ((isdigit(str)) != 0) {
		return 2;
	}
	else
		return 3;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2022, 00:06
Ответы с готовыми решениями:

Написать программу, которая считывает строку символов, которая считывает строку, содержащую только числа (с проверкой символов при вводе) и под¬счи
Написать программу, которая считывает строку символов, которая считывает строку, содержащую только...

Написать функцию, которая считывает из буфера клавиатуры строку в s и возвращает длину строки
*с указателями*- написать функцию которая считывает из буфера клавиатуры строку в s и возвращает...

Разобрать прогу (написать программу, которая считывает с клавиатуры строку символов и выводила на экран самую короткую)
#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;conio.h&gt; #define n 256 using namespace std; ...

Строка: Используя цепочке команды написать программу, которая считывает строку символов с клавиатуры и заменяет в нем пробелы в точки.
Помогите сделать программы (ТАСМ): 1.Используя цепочке команды написать программу, которая...

Написать программу на языке паскаль,которая считывает с клавиатуры строку S, состоящую из цифр
написать программу на языке паскаль,которая считывает с клавиатуры строку S, состоящую из цифр. В...

8
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.01.2022, 00:33 2
Цитата Сообщение от adelina_ Посмотреть сообщение
считывать через gets
gets - устаревшая функция, причём из языка С. кто Вам такое советует ?
0
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 4
12.01.2022, 00:58  [ТС] 3
Преподаватель
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.01.2022, 01:22 4
Лучший ответ Сообщение было отмечено adelina_ как решение

Решение

для латиницы. ввод через cin.getline
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
 
int check_str (char *s)
{
    int n=strlen(s), digit=0, alpha=0;
    for (int i = 0; i < n; i++)
    {
        if(isdigit(s[i])) digit++;
        if(isalpha(s[i])) alpha++;
    }
    if(digit==n) return 1;
    else if(alpha==n) return 2;
    else return 3;
}
 
int main()
{   
    char s[256];
    cout << "String:\n";
    cin.getline(s, 256);
    
    cout << check_str(s) << "\n";  
    
return 0;
}
1
0 / 0 / 0
Регистрация: 12.01.2022
Сообщений: 4
12.01.2022, 01:29  [ТС] 5
Yetty, Я только позже поняла, что проверяю не каждый символ в строке и нужен цикл... Спасибо большое)
0
Эксперт С++
4121 / 1921 / 959
Регистрация: 01.06.2021
Сообщений: 6,773
Записей в блоге: 6
12.01.2022, 01:52 6
adelina_, я бы не слушал препода, сделал бы так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
 
int checkString(string);
 
int main()
{
    string text;
    getline(cin, text);
    switch (checkString(text))
    {
        case 1:
            cout << "The given string contains only alphabetic characters";
            break;
        case 2:
            cout << "The given string contains only numeric characters";
            break;
        case 3:
            cout << "The given string doesn't contain only alphabetic characters or only numeric characters";
            break;
        default:
            break;
    }
}
 
int checkString(string s)
{
    bool alpha = true, num = true;
    for (const auto &i : s)
    {
        if (alpha)
        {
            if (!isalpha(i)) alpha = false;
        }
        else
        {
            if (num)
            {
                if (!isdigit(i)) num = false;
            }
            else
            {
                return 3;
            }
        }
    }
    return alpha ? 1 : 2;
}
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.01.2022, 01:56 7
Royal_X, проверьте код:
uy67
The given string contains only numeric characters
0
Эксперт С++
4121 / 1921 / 959
Регистрация: 01.06.2021
Сообщений: 6,773
Записей в блоге: 6
12.01.2022, 02:10 8
Лучший ответ Сообщение было отмечено Royal_X как решение

Решение

Yetty, тогда так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
 
int checkString(string);
 
int main()
{
    string text;
    getline(cin, text);
    switch (checkString(text))
    {
        case 1:
            cout << "The given string contains only alphabetic characters";
            break;
        case 2:
            cout << "The given string contains only numeric characters";
            break;
        case 3:
            cout << "The given string doesn't contain only alphabetic characters or only numeric characters";
            break;
        default:
            break;
    }
}
 
int checkString(string s)
{
    bool alpha = true, num = true;
    for (const auto &i : s)
    {
        if (alpha && !isalpha(i)) alpha = false;
        if (num && !isdigit(i)) num = false;
        if (!alpha && !num) return 3;
    }
    return alpha ? 1 : 2;
}
Добавлено через 9 минут
Yetty, проверьте код

Цитата Сообщение от adelina_ Посмотреть сообщение
функцию, которая возвращает значение 1, если строка состоит только с букв, значение 2, если строка состоит только из цифр
у вас наоборот
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.01.2022, 02:39 9
Цитата Сообщение от Royal_X Посмотреть сообщение
у вас наоборот
спасибо за внимательность

adelina_, замените функцию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int check_str (const char *s)
{
    int n=strlen(s), alpha=0, digit=0;
    for (int i = 0; i < n; i++)
    {
        if(isalpha(s[i])) alpha++;
        if(isdigit(s[i])) digit++;        
    }
    if(alpha==n) return 1;
    else if(digit==n) return 2;
    else return 3;
}
0
12.01.2022, 02:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2022, 02:39
Помогаю со студенческими работами здесь

Написать программу, которая считывает дату с клавиатуры в формате дд.мм.гггг и преобразует её в развёрнутую строку
Написать программу, которая считывает дату с клавиатуры в формате дд.мм.гггг и преобразует её в...

Написать программу, которая считывает строку с клавиатуры и вычисляет в ней процент слов, заканчивающихся конкретным
Написать программу, которая считывает строку с клавиатуры и вычисляет в ней процент слов,...

Написать программу, которая считывает строку с клавиатуры. Требуется удалить из нее повторяющиеся символы и все пробе
Написать программу, которая считывает строку с клавиатуры. Требуется удалить из нее повторяющиеся...

Написать функцию, которая принимает строку и возвращает максимальное количество одинаковых символов, идущих подряд
Написать функцию, которая принимает строку. В качестве результата возвращает максимальное...

Нужно написать функцию, которая принимает строку, а возвращает количество гласных, согласных и символов-разделителей
Подскажите,пожалуйста, хотя бы основную идею работы с функциями и указателями. Нужно написать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru