Помогите написать программу на С++

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

У меня не получается составить программу и вообще как работать со строками в таких задачах. Я пытался сделать эту задачу по кодам каждого символа. Вот что получилось.

#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
  1. Вначале нужно определить что такое буква. Судя по вашему коду вы проверяете только на вхождение в диапазон a..z. Т.е. для вас буква это буква латинского алфавита в нижнем регистре. Я бы добавил еще проверку на верхний регистр. Это если кириллицу мы за буквы не считаем

  2. Проверка вида

    if (s >= '97'
    

    ошибочна. Либо проверяйте по кодам, тогда никаких кавычек

    if (s >= 97
    

    либо в кавычках пишите символ

    if (s >= 'a'
    
  3. Проверять нужно каждый символ строки, а не всю строку

Итого

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 << "текст содержит символы отличные от букв и пробела";
→ Ссылка