1.4 If Anweisung#

Strings#

In C gibt es keinen Datentyp String.

  • Strings werden als Arrays vom Typ char realisiert.

  • Das Ende eines Strings wird durch das (Steuer-)Zeichen \0 angegeben. Beispiel: Der String “hello” entspricht {’h’, ’e’, ’l’, ’l’, ’o’, ’\0’}

  • Umständlich! \(\Leftrightarrow\) Kurzschreibweise: char s[] = "hello"; statt char s[] = {’h’, ’e’, ’l’, ’l’, ’o’, ’\0’};

Aufgabe: Strings#

Ersetzen Sie jedes Vorkommen eines Leerzeichens im String s durch einen Unterstrich. Nutzen Sie hierfür eine while-Schleife und eine if Abfrage. Als Hilfe: Vergleichsoperatoren, Kontrollstrukturen.

#include <iostream>

int main () {
    char s[] = "In C, string literals are of type char[], and can be assigned directly to a (non-const) char*.";
    
    // Ersetzen Sie in s jedes Leerzeichen durch ’_’
    // TODO

    std::cout << s << std::endl; 
}
main()

Folgend eine mögliche Lösung:

#include <iostream>

int main () {
    char s[] = "In C, string literals are of type char[], and can be assigned directly to a (non-const) char*.";
    
    // Ersetzen Sie in s jedes Leerzeichen durch ’_’
    int i = 0;
    while(s[i] != '\0') {
        if(s[i] == ' ') {
            s[i] = '_'; 
        }
        ++i; 
    }

    std::cout << s << std::endl; 
}