if Ausdruck mit oder vereinfachen (C)?

2 Antworten

Es gibt verschiedene Möglichkeiten:

a) switch (s[i])

{

case 'a':

case 'e':

....

}

b) (Besser)

if (isVokal(s[i]) {...}

wobei isVokal den Vergleich des Parameters auch wieder per switch, per "==" oder stingfunktion enthalten kann.

char Vokale[] = "aeiouäöüAEIOUÄÖÜ";
int i;

for ( i = 0; s[i]; i++ )
{
if(strchr( Vokale, s[i] ))
{
printf("String enthaelt einen Vokal an der Stelle %d\n", i+1);
}
}

okay danke, aber muss man tatsächlich bei meinem Beispiel jedesmal s[i] aufführen oder könnte man das anders machen?

0
@Dieter987

Wenn Du bei Deinem Code bleiben willst, könnte man vor allen Abfragen s[i] erst mal kopieren.

char Zeichen;

Zeichen = s[i];

if ( ( Zeichen == ...) || ( Zeichen == ... ) ...

Bei den heutigen Rechnern macht das bezüglich der Performance Null Unterschied. Ausserdem optimieren gute Compiler den Code genau auf diese Weise.

1
@Dieter987

könnte man das anders machen?

for ( char const *sp=s; *sp; ++sp )
  if ( strchr("aeiou", *sp) ) /* ... */
0

Ist der Befehl "else if" unnötig?

Mann könnte doch statt else if (bzw. in anderen Sprachen z.B. python "elif") einfach nochmal if schreiben oder sehe ich das falsch? da spart man sich ein ganzes wort :D

...zur Frage

Wofür Switch case?

Warum sollte ich nen switch verwenden anstatt einfach if und else if?

    switch ($variable) {
        case '1':
            # code...
            break;
        case '2':
            # code...
            break;    
        default:
            # code...
            break;
    }

verglichen mit if Verzweigungen ist das doch viel länger

    if($variable == 1) echo 1;
    else if($variable == 2) echo 2;
    else echo 3;
...zur Frage

Minimalpaare in der Phonetik?

Phoneme werden ja durch die Bildung von Minimalpaaren gewonnen, und das sind 2 Wörter, die sich nur in einem Phon unterscheiden. Zählen kurze und lange Vokale zsm als ein Phon oder sind es 2? Zb die Wörter kann und Kahn, das eine würde phonetisch so geschrieben: kan und das andere ka:n. wäre das also ein minimalpaar??

Danke!

...zur Frage

Java Spiel Fehler im Code?

Hallo,

Ich muss für die Schule in Java ein Code für ein Spiel schreiben. Hierbei habe ich mich für "Schere, Stein, Papier" mit 5 Varianten entschieden.

Für den Code habe ich lange gebraucht doch als ich endlich fertig war und ihn ausprobiert habe, habe ich keine Fehlermeldung bekommen - sprich der Code enthält 'in Java Sprache' keine Fehler.

Doch das Spiel funktioniert nicht!

Gibt es hier bereitwillige Spezialisten die mir helfen können meinen Fehler im Code zu finden?

Ich bin echt nicht gut in Informatik...

import java.awt.; import java.applet.; import java.util.Scanner;

public class KampfDerElemente extends Applet {

public static void main(String[] args) {

while(true) {

System.out.println("Sie haben die Wahl");

System.out.println("1 - Feuer");

System.out.println("2 - Wasser");

 System.out.println("3 - Luft");

 System.out.println("4 - Erde");

 System.out.println("5 - Elektro");

 Scanner input = new Scanner(System.in);

 int pcwahl;

 pcwahl = (int) (Math.random() * 5) + 1;

 int feuer = 1;

 int wasser = 2;

int luft = 3;

 int erde = 4;

 int elektro = 5;

if (input.nextInt() == pcwahl) {

System.out.println("Unentschieden!");}

if ((pcwahl == feuer) && (input.nextInt() == 3 || input.nextInt() == 5)){

System.out.println("Der Computer hat gewonnen!");

           }

else if (input.nextInt() == 2 || input.nextInt() == 4){

System.out.println("Sie haben gewonnen!");}

                    

           if ((pcwahl == wasser) && (input.nextInt() == 1 || input.nextInt() == 4)){

               System.out.println("Der Computer hat gewonnen!");}

                

               else if (input.nextInt() == 3 || input.nextInt() == 5){

                   System.out.println("Sie haben gewonnen!");}

                    

           if ((pcwahl == luft) && (input.nextInt() == 1 || input.nextInt() == 4)){

               System.out.println("Sie haben gewonnen!");}

                

               else if (input.nextInt() == 2 || input.nextInt() == 5){

                   System.out.println("Der Computer hat gewonnen!");}

                        

           if ((pcwahl == erde) && (input.nextInt() == 1 || input.nextInt() == 3)){

               System.out.println("Der Computer hat gewonnen!");}

                            

               else if (input.nextInt() == 2 || input.nextInt() == 5){

                   System.out.println("Sie haben gewonnen!");}

                    

           if ((pcwahl == elektro) && (input.nextInt() == 1 || input.nextInt() == 3)){

               System.out.println("Sie haben gewonnen!");}

                

               else if (input.nextInt() == 2 || input.nextInt() == 4){

                   System.out.println("Der Computer hat gewonnen!");}

                           }

                       }

                   }

LG Ollivoe

...zur Frage

Mein c++ Programm macht nicht was ich will?

Ich muss für eine C++ Übung folgendes Programm schreiben:

Schreiben Sie ein Programm, das zunächst eine Zeichenkette (max. 80 Zeichen) einliest und dann immer wieder ein einzelnes Zeichen einliest und die Zeichenkette ausgibt, die entsteht wenn man das zuletzt eingegebene Zeichen aus der ursprünglichen Zeichenkette entfernt. (Das Programm soll durch Eingabe eines ! beendet werden.)

das hab ich bis jetzt: #include

using namespace std;

int main () {

int n,T; char x; char w[81];

T=1;

while (T==1){ cout << "Bitte ein Wort eingeben. (max 80 Zeichen!)"; cin >> w; cout << "Bitte einen Buchstaben eingeben! (Beenden durch eingabe eines !)" << endl;

    for(x; x!='!';){ 
            cin >> x;
        for (n=0; w[n]!='\0';n=n+1) {
        if (w[n]!=x) {
            cout << w[n];}
        } 

    };

cout << "Nochmal? JA=1, NEIN=0.";
cin >> T;

};

return 0;

}

Das Problem ist, wenn ich versuche das Programm mithile der Schleife neu zu starten, lässt er mich zwar ein neues Wort eingeben, fragt mch dann jedoch sofort ob ich neu starten möcht, ohne das ich einen Buchstaben eingeben könnt. Wo liegt der Fehler bei meinem Programm? Ich such schon seit ewigkeiten, find aber nichts.

...zur Frage

Batch-Dateien: Inkognitomodus bei Chrome öffnen, im IF-Befehl mit "und" und Batch für Android?

Sehr geehrte Damen und Herren der Computertechnik

Ein Kumpel und ich haben momentan Spaß daran gefunden, mit Batch-Dateien allerlei Sachen anzustellen, wie z.b. ein Menü erstellen, welches alle möglichen Sachen per Knopfdruck öffnet (Google, Ordner mit komplizierten Pfaden, Spiele) oder ein wenig mit IP-Adressen rumspielt. Dabei sind ein paar Fragen aufgetaucht:

  1. Kann man mit einer Batch-Datei einen Internetlink im Inkognitomodus von Chrome öffnen?
  2. Gibt es eine App für Android, mit der man Batch-Dateien erstellen, bearbeiten und/oder testen kann?
  3. Kann man, wenn man mit IF-Befehlen arbeite und "und"s einbaut, kann man das wie bei Java schreiben ( if (a=o&&a=1) glaube so war das ) Bis jetzt haben wir die einfach hitnereinander geschrieben

So:

if %asw%==a goto a

if %asw%==A goto a usw

Vielen Dank im Vorraus :)

...zur Frage

Was möchtest Du wissen?