if & else

Moin,

mal so auch dem Bauch heraus :
nimm für jedes Land einen eigenen String (ggf. String-Array) und arbeite sie dann in einer Schleife ab!

Gruß
Klaus
 
Ich würde sagen Liste dem User der das eingeben soll einfach deine Länder auf und/oder verkürze deine Eingabe auf die gebräuchlichen Abkürzungen: GER CH AUT usw.

gruß

deadr
 
Als Beispiel:

C++:
#include "stdafx.h"
#include <iostream>
#include <algorithm> 
#include <string>
#include <functional>

bool checkCountry(std::string land, std::string input){
 
    // Umwandeln in Grossbuchstaben    
    std::transform(input.begin(), input.end(), input.begin(), std::ptr_fun(toupper));
	std::transform(land.begin(), land.end(), land.begin(), std::ptr_fun(toupper));

    // Suchen
    if( land.find(input) != std::string::npos )
    {
        return true;
    } 
    return false;
}


    
int main(void)
{

	// 1.Festlegung von Anzahl der Auswahlmöglichkeiten
	const int	landcount = 3;

	std::string sLaender[landcount];			// Auswahlstring:
	std::string sLaenderCheckString[landcount];	// Checkstring für die Auswahl
	char		cLand[1024];

	// Länder definieren....
	sLaender[0] = "Deutschland";
	sLaender[1] = "Italien";
	sLaender[2] = "England";

	// Checkstrings definieren...
	sLaenderCheckString[0] = "DEUTSCHLAND DEEUTSCHLAND TEUTSCHLAND";
	sLaenderCheckString[1] = "Italien Ittalien Ittallien Itacaland";
	sLaenderCheckString[2] = "England Grossbritannien";

	// Dem Benutzer fragen...
	std::cout << "Waehle ein Land aus: " << std::endl;
	
	// Ausgabe der Länder...	
	for(int i = 0; i < landcount; i++)
		std::cout << "\t*" << sLaender[i].c_str() << std::endl;
	
	std::cout << std::endl << "Deine Antwort: " << std::endl;
	
	// Eingabe fordern...
	std::cin.getline(cLand, 1024);

	// In string casten...
	std::string sLand(cLand);


	int index_of_input = -1;
	// Eingabe prüfen... Wenn Land im Checkstring vorkommt...
	for(int i = 0; i < landcount; i++){
		if(checkCountry(sLaenderCheckString[i], cLand)){
			// Speichere Landindex
			index_of_input = i;
			break;
		}
	}
	// Wenn das Land vorkam (sprich index_of_input >= 0 ist...)
	if(index_of_input >= 0){
		std::cout << std::endl << "Deine Antwort war: " << sLaender[index_of_input].c_str();
	} else {
		std::cout << std::endl << "Sry, Antwort nicht verstanden...Anwendung wird nun beendet.";
	}


	// Eingabe fordern...
	std::cin.getline(cLand, 1024);


	return 0;
}
 
Zuletzt bearbeitet von einem Moderator:
Zurück