2016-06-01 7 views
0

Ich weiß nicht, wie man überprüft, ob die Eingabe eines Benutzers alphabetisch ist. Ich möchte das Programm auf:Überprüfen, ob die Benutzereingabe alphabetisch ist

  1. die Benutzereingabe lesen Check
  2. wenn es alphabetische ist
  3. Ausgabe der Name wieder

Ich versuchte isdigit und isalpha zu verwenden, aber ich konnte es nicht bekommen arbeiten.

//checking if name is valid and not a number 
int nameCheck(char enteredName) 
{ 
    //if the name is alphabetic 
     /* return and output it */ 

    //else 
     /* let the user enter it again */ 
} 

//user enters the name 
int nameEntering() 
{ 
    cout << "please enter your Name.\n"; 
    char enteredName; 
    cin >> enteredName; 
    nameCheck(enteredName); 
    return 0; 
} 

int main() 
{ 
    char enteredName; 
    enteredName = nameEntering(); 
    cout << "Have a nice day " << enteredName << "!\n"; 
    return 0; 
} 

Dies ist meine alte Lösung, die überhaupt nicht funktioniert. Ich fand das auf einer anderen Seite und nutzte es als "Vorlage".

int nameCheck(char enteredName) 
{ 
    int i = 0; 
    char str[] = {enteredName}; 
    while (str[i]) 
     { 
      if (isalpha(str[i])) printf("character %c is alphabetic\n",  str[i]); 

      else 
      cout << "Enter your name again without using numbers or other  special characters, please!\n"; 
      nameEntering(); 
      i++; 
     } 
    return enteredName; 
} 
+0

Sie benötigen eine Schleife über den "Name eingeben" -Teil, abhängig von der Ausgabe der Funktion nameCheck (verwenden Sie den Rückgabetyp bool dafür). In Pseudocode etwas in der Art von 'while (! NameCheck (name)) {name = promptName()}'. – nucleon

+1

Name ist eine 'Sammlung von Wörtern'. Verwenden Sie daher 'std :: string' anstelle von' char'. Wenn Sie 'Space' in Names erwarten, verwenden Sie' getline() '. – sameerkn

+0

Es tut mir leid, wie ich schon sagte ich bin neu hier und nutze diese Seite aktiv zum ersten Mal. – metr1xx

Antwort

0

Ich fand die Lösung.

//user enters the name 
void nameEntering() 
{ 
    cout << "please enter your Name.\n"; 
    string enteredName; 
    cin >> enteredName; 

//checking if name is valid and not a number 
    if (find_if(enteredName.begin(), enteredName.end(), isdigit) !=enteredName.end()) 
    { 
     system("cls"); 
     cout << "please don't enter numbers or other special characters.\n"; 
     cout << "\n"; 
     nameEntering(); 
    } 
    //if valid it outputs name 
    else 
    { 
     coutput(enteredName); 
    } 
}