[C] Wörter auslesen und 'Antwort geben'

Hallo,

bin absoluter Neuanfänger in C!
Ich möchte einen Code erstellen, der es dem Benutzer ermöglicht, Sachen einzugeben und das Programm gibt dann vorgefertigte Antworten darauf aus.

Beispiel: Der Nutzer gibt „Hallo“ ein. Das Programm soll dann mit „Hallo Benutzer“ antworten. Der Nutzer kann aber auch „Ich brauche Hilfe“ eingeben, da soll das Programm dann „Benötigst Du Hilfe?“ antworten. Wenn der Nutzer weder „Hallo“ noch „Ich brauche Hilfe“ eingibt, also z.b. „Guten Tag“, soll das Programm „Das kann ich leider nicht verstehen“ ausgeben.

Ist das möglich?

natürlich ist auch nicht schwer.
aber zuerst muss ich wissen benutzt du c++ builder oder irgendeine andere Software?

Hallo,

da ich MacUser bin, nutze ich als Compiler Xcode.

Hallo

Einen String vom Standardinput einlesen kannst du mit scanf(), gets() oder fread().

Einen String mit einem anderen vergleichen kannst du mit strcmp().

Mit

if(..)
{
}
else if(...)
{
}
else
{
}

kannst du dann auch noch abhängig davon was bei strcmp() herauskommt, das Programm entsprechend darauf reagieren lassen.

Ausgeben tust du mit printf().

Google einfach mal nach den Funktionen.

mfg dixxi

aber zuerst muss ich wissen benutzt du c++ builder oder
irgendeine andere Software?

In Gottes Namen, warum sollte man das wissen müssen?

„Kann ich mit diesem Hammer Nägel in die Wand schlagen?“
– „Klar, kann dir auch sagen wie, aber zuerst muss ich wissen, ist der Werkzeugkasten von Black und Decker oder von irgendeiner anderen Firma?“

Kopfschüttelnd,
Sebastian

Hallo,

danke für die Antwort! Nur leider kann ich mit dem Code, den du mir geschickt hast, nicht viel anfangen, da ich wie gesagt noch Anfänger bin. Kannst du mir vielleicht en Code so anpassen, wie ich ihn im Beispiel beschreiben habe?

Da wäre echt nett.

int main (void)
{
int i = 0;
int textid = 0;
char text[100];
char antwort1[] = „hallo“; // wichtig das alles klein geschriben ist!!
char antwort2[] = „ich brauche hilfe“;
printf(„Haben Sie mir etwas zu sagen?\n“);

gets(text); // Hier wird der Text eingelesen und gepeichert
while (text[i] != ‚\0‘) // Es werden alle Buchstaben in kleine Umgewandelt, da man immer nur eine 1:1 abfrage machen kann
{
if (text[i] >= 65 && text[i]

Hallo,

danke! Absolut top!
Noch für das i-Tüpfelchen: Wie kann ich es erreichen, dass sich der Prozess immer wiederholt (also bisher kann ich ja nur eine Sache „fragen“ und das Programm gibt Antwort, ich kann danach aber nichts mehr fragen, da der Prozess dann beendet wird.)?

Ist nicht die beste Lösung, aber es geht wohl nur mit nem „Schalter“
thor. kann man auch ne while-schleife machen ohne Schater demnach:
while(text != „ende“)// solange bis ende geschrieben wird
{

}
aber ging halt nicht, keine ahnung warum…

int main (void)
{
int exit = 0; // schalter
int i = 0;
char text[100];
char antwort1[] = „hallo“; // wichtig das alles klein geschriben ist!!
char antwort2[] = „ich brauche hilfe“;
char ende[] = „ende“;
printf(„Haben Sie mir etwas zu sagen?\n“);
while(exit != 1) // solange die schleife durchlaufen, bis schallter umgelegt wird
{
printf("\n");
gets(text); // Hier wird der Text eingelesen und gepeichert
while (text[i] != ‚\0‘) // Es werden alle Buchstaben in kleine Umgewandelt, da man immer nur eine 1:1 abfrage machen kann
{
if (text[i] >= 65 && text[i]

Hallo,

echt super! Genau so hab ich es mir vorgestellt! Vielen Dank!