Verwandte Themen

Umlaute in C zulassen?

Hallo, ich schreibe gerade an einem Programm in dem ich Palindrome(Wörter bzw. Sätze, die von vorne und von hinten gelesen das selbe ergeben zB. Lagerregal, etc.) herausfinden soll. In der Programmiersprache C. Hier ist die Funktion, in der ich den String in Kleinbuchstaben umwandle:

void small(char str[]);

void small(char str[])

{

   int i = 0;

   int len = 0;

   int j = 0;

   char sho[200] = {};

   len = strlen(str);

   //printf("0");

   while(str[i] != '\0')

   {

       // printf("01");

       if(((str[i] < 91) && (str[i] > 64)) || (str[i]== 'ä')||(str[i]== 'ö') || (str[i]== 'ü')|| (str[i]== 'ß')) //ob str[i] großbuchstabe ist

       {

           //       printf("2");

           str[i] = str[i] + 32;

       }

       i++;

   }//puts(str);

   i = 0;

   while(str[i] != '\0')

   {

//       printf("1");

       if (((str[i] > 96) && (str[i] < 123))|| (str[i]== 'ä')||(str[i]== 'ö') || (str[i]== 'ü')|| (str[i]== 'ß')) //ob str[i] buchstabe ist

       {

           sho[j] = str[i];

           j++;

       }

       i++;

   }

   puts(sho);

   strcpy(str, sho);

   //puts(str);

}

Mein Problem ist, dass, wenn ich zB Säas eingebe es als Palindrom gewertet wird, weil es das ä nicht zählt. Ich weiß, dass der Rest meines Programmes funktioniert.

Ich hoffe ihr könnt mir da weiterhelfen.

Mit freundlichen Grüßen,

Hallo

Funktion, Programmiersprache
Java: Wie kann ich in switch-Statements Benutzereingaben verarbeiten?

Hallo!

Also, ich muss eine Ampel in Java basteln. Die Ampel soll wechseln:

rot => rot-gelb => gelb => grün => rot => rot-gelb => gelb...

Ich habe jetzt ein Switch Statement (switch case) verwendet:

 public class TrafficLight {
public static void main(String[] args) {

    int tl = 2;
    String tlString;
    switch (tl) {
        case 1:  tlString = "red";
                 break;
        case 2:  tlString = "red-yellow";
                 break;
        case 3:  tlString = "green";
                 break;
        case 4:  tlString = "yellow";
                 break;
        default: tlString = "Invalid tl";
                 break;
    }
    System.out.println(tlString);

}
 }

Das funktioniert schonmal, aber ich bekomme nur „red-yellow” als Ausgabe. Damit ist die 1. Hälfte getan. Nun müsste der Benutzer nur noch eine Aktion machen (z.B. „c” eingeben). und dann sollte die Ampel umschalten (also auf grün wechseln). Ich habe also mit

  import java.util.Scanner;

den Scanner importiert (1. Zeile) und dann zwischen die letzten beiden geschweiften Klammern (s.o.)

public static void input(String[] args) {

    Scanner scan = new Scanner(System.in);
    int y = scan.nextInt();

    System.out.println("Please enter a the letter c:");
    int year = scan.nextInt();

}

eingefügt. Aber Java gibt noch nichtmal die Ausgabe aus, dass eine Eingabe erwartet wird und Eingaben sind auch nicht möglich! Was mache ich falsch? Oder ist die Idee generell falsch?


Hier die Aufgabe im Original:

Implementieren Sie die Steuerung einer Verkehrsampel. Die Verkehrsampel kann sich dabei ausschlielich in einem der folgenden vier Zustände benden: rot, rot-gelb, grün und gelb. Die Ampel darf dabei nur von rot auf rot-gelb, von rot-gelb auf grün, von grün auf gelb und von gelb auf rot umschalten. Schreiben Sie eine Klasse TrafficLight, die diesen Anforderungen genügt. Die Klasse soll jeweils eine Methode zum Weiterschalten der Ampel zwischen den erlaubten Zuständen anbieten. Ferner sollte es möglich sein, denaktuellen Zustand der Ampel auf den Bildschirm auszugeben. Schreiben Sie eine Main-Methode, in der Sie ihre Implementierung gründlich testen.


Danke im Voraus!

Programmierung, Java, Programmiersprache

Meistgelesene Beiträge zum Thema Programmiersprache