создание орограммы, где код должен проверить, есть ли в тексте CIN символ @ - PullRequest
0 голосов
/ 03 октября 2019

Я собираюсь написать небольшую программу, в которой пользователь вводит адрес электронной почты, и код должен проверить, содержит ли электронная почта @: ive, только что начавший программировать, и вот что я придумала до сих пор:

#include <iostream>
#include <string>
using namespace std;

int main() {
  cout << "Skriv in en Epostadress: \n";
  string adress;
  cin >> adress;
  if (adress == "@"){
    cout << "Giltig!";
  }
  else {
    cout << "Ogiltig!";
  }

  return 0;
}

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

возможно, ваша проблема в том, что вы сравниваете всю строку с "@", что никогда не было для вас, однако, если вы пытаетесь найти "@" во входной строке, вам нужно будет искать ее каксимвол, использующий цикл for, но вам очень повезло, что вы можете просмотреть строку как массив символов в c ++

, попробуйте это:

for(int i=0; i<adress.size(); i++){
    if (adress[i] == '@'){
        cout << "Giltig!" << endl;
        return 0;
    }
}
cout << "Ogiltig!" << endl;
return 0;
0 голосов
/ 03 октября 2019

Использовать функцию-член find класса std :: string.

  if ( adress.find( '@' ) != std::string::npos ){
    cout << "Giltig!";
  }
  else {
    cout << "Ogiltig!";
  }

Вот демонстрационная программа.

#include <iostream>
#include <string>

int main() 
{
    std::string address( "Harald.Scherr@gmail.com" );
    std::string::size_type pos;

    if ( ( pos = address.find( '@' ) ) != std::string::npos )
    {
        std::cout << "The character '@' is found at position " << pos << '\n';
    }
    else
    {
        std::cout << "The character '@' is not found\n";
    }

    return 0;
}

Ее вывод

The character '@' is found at position 13
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...