Помогите написать программу на С++
Определить, содержит ли данный текст символы, отличные от букв и пробела.
У меня не получается составить программу и вообще как работать со строками в таких задачах. Я пытался сделать эту задачу по кодам каждого символа. Вот что получилось.
#include <stdio.h>
#include <iostream>
#include <ctype.h>
#include <string>
using namespace std;
int main() {
string s;
cout << "введите строку: ";
getline(cin, s);
if (s >= '97' && s <= '122'; s = '32')
cout << "текст не содержит символы отличные от букв и пробела";
else
cout << "текст содержит символы отличные от букв и пробела";
return 0;
}
Ответы (1 шт):
Автор решения: Anton Shchyrov
→ Ссылка
Вначале нужно определить что такое буква. Судя по вашему коду вы проверяете только на вхождение в диапазон
a..z. Т.е. для вас буква это буква латинского алфавита в нижнем регистре. Я бы добавил еще проверку на верхний регистр. Это если кириллицу мы за буквы не считаемПроверка вида
if (s >= '97'ошибочна. Либо проверяйте по кодам, тогда никаких кавычек
if (s >= 97либо в кавычках пишите символ
if (s >= 'a'Проверять нужно каждый символ строки, а не всю строку
Итого
bool letterAndSpace = true;
for (int i = 0; letterAndSpace && i < s.length; i++) {
char cur = s[i];
letterAndSpace =
(cur == ' ') ||
(cur >= 'A' && cur <= 'Z') ||
(cur >= 'a' && cur <= 'z');
}
if (letterAndSpace)
cout << "текст не содержит символы отличные от букв и пробела";
else
cout << "текст содержит символы отличные от букв и пробела";