C-Tutorials.de Logo

zum Inhaltsverzeichnis

C Tutorial: Strings und Konsole formatieren


Strings in C:

Den Begriff Strings, habe ich irgendwann schon mal erwähnt. Strings sind Zeichenketten. C ist nicht gerade die Sprache, in der Strings am einfachsten funktionieren, aber so schwer ist es auch nicht. Du kennt vielleicht noch den Datentyp 'char'. Ich habe ihn in diesem Tutorial nie weiter Beachtung geschenkt - bis jetzt. Jetzt wirst du sehen, wie man aus einem Array mit dem Datentyp 'char' einen String bastelt:

char str[] = "Ich bin ein String";

Wenn du das char Array (also den String) direkt auch initialisierst kannst du es dir sparen in den eckigen Klammern '[ ]' anzugeben, aus wievielen Zeichen der String besteht. Das überlässt du dann lieber dem Kompiler.
Das Auslesen funktioniert genauso wie bei einer normalen Variable, aber das liegt daran, das wir '%s' zur Ausgabe verwenden. Dadurch weiß der Computer, das er hier einen String vor sich hat und das Array ganz ausgeben soll:

printf("%s",str);

Schreiben ist wieder das selbe wie bei jedem Array sonst auch, nur das du darauf achten musst, dass du den Buchstaben, den du schreibst in Apostroph "'" schreibst. Ebenso wenn du eine Zahl in einen String reinschreibst. Sonst denkt der Computer es handelt sich um einen ASCII-Code und er wandelt diesen dann in den entsprechenden Buchstaben um (falls es einen zugehörigen gibt):

Str[2] = 'x';

Aufgabe 1:

Schreibe ein Programm, das den String 'char Str[] = "Hallu";' ausgibt, nach einen Tastendruck 'Hallo' richtig im String steht und dann nochmal ausgibt. Lösung:

#include <stdio.h>
#include <windows.h>

int main ()
{
char Str[] = "Hallu";

  printf("%s\n",Str);

  getch();

  Str[4] = 'o';

  printf("%s",Str);

  getch();
}

Aufgabe 2:

Schreibe ein Programm, in dem du per scanf einen String eingeben kannst, dann durch eine Abfrage festlegen kannst welchen Buchstaben du ändern möchtest und durch welchen Buchstaben du ihn ersetzen möchtest. Zum Schlus gibst du den veränderten String wieder aus. Lösung:

#include <stdio.h>
#include <windows.h>

int main ()
{
char Str[] = "                    "; //Hier wird festgelegt, wie lang der String maximal sein kann
int change;
int letter; //Hier wird der ASCII-Code des neuen Buchstabens gespeichert

  printf("Gib einbeliebiges Wort ein (max. 20 Zeichen): \n");
  scanf("%s",Str);

  printf("\nDas wievielte Zeichen moechtest du aendern? ");
  scanf("%i",&change);

  printf("Durch welches Zeichen ersetzt werden? ");
  letter = getch();

  putchar(letter); //putchar() nimmt ASCII-Code entgegen und gibt dann dessen Zeichen aus

  Str[change-1] = letter; //Den entsprechenden ASCII-Code zuweisen / ja in den eckigen Klammern kann man auch rechen

  printf("\n\n%s",Str);

  getch();
}

Die Konsole formatieren:

zum Inhaltsverzeichnis