Advertisement
phoenix79194

String Functions

Feb 28th, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.85 KB | None | 0 0
  1. // string-Funktionen
  2. /*
  3.  
  4.     Da ein String wie bereits erwähnt keinen eigenen Typ in ANSI C darstellt, wurden in der Bibliothek string.h
  5.     Funktionen bereitgestellt, die a) Zuweisung, b) Vergleich und c) "Aneinander-Hängen" ermöglichen
  6.  
  7. */
  8.  
  9. #include<stdio.h>
  10. #include<string.h>
  11.  
  12.  
  13.  
  14. main()
  15. {
  16.     system("chcp 1252");
  17.     system("cls");
  18.    
  19.     // STRING COPY -----------------------------------------------------------------------------------------------
  20.    
  21.     char satz[100]="Irgendein Beispielssatz ...";
  22.     printf("Inhalt von satz nach ERSTER Initialisierung durch"
  23.     " char satz[100]='Irgendein Beispielssatz ...':\n%s\n\n",satz);
  24.     // Diese Zuweisung per '='-Zeichen klappt nur bei der ERSTEN Initialisierung
  25.     // satz[]="Neuer Inhalt"; // funktionieert nicht.
  26.    
  27.     // Lösung des Problems: Verwendung der strcpy-Funktion (stringCopy)
  28.     strcpy(satz,"Neuer Inhalt");
  29.     printf("Aktueller Inhalt von satz nach Verwendung von strcpy(satz,\"Neuer Inhalt\"):\n%s\n\n",satz);
  30.    
  31.     // Einsatz von strcpy funktioniert natürlich auch mit Zugriff aus einer Variable:
  32.     char satz2[]="Ein anderer Satz.";
  33.     strcpy(satz,satz2); // Einsatzgebiet z.B.: satz2 wird per User-Eingabe gefüllt,
  34.                         // liegt also beim programmieren noch nicht vor
  35.     printf("Aktueller Inhalt von satz nach Verwendung von strcpy(satz,satz2):\n%s\n\n",satz);
  36.    
  37.     // Folgendes hingegen kann nicht funktionieren:
  38.     // strcpy("Blablablub, ... ...!",satz); // Ergibt einen Ausnahmefehler, denn der KONSTANTE String "Blabla ..." kann  
  39.                                          // nicht überschrieben werden.
  40.    
  41.    
  42.    
  43.     // String Compare -----------------------------------------------------------------------------------------------
  44.    
  45.     strcmp("Auto","Bus"); // Gibt einen Zahlenwert (als Rückgabewert) zurück:
  46.         // -1 : Die beiden Strings stehen in alphabetisch korrekter Reihenfolge (kleiner ASCII-Wert minus großem)
  47.         //  0 : Die beiden Strings sind identisch
  48.         //  1 : Die beiden Strings stehen nicht alphabetisch geordnet zueinander (großer ASCII-Wert minus kleinem)
  49.     printf("Rückgabewert von strcmp(\"Auto\",\"Bus\"): %i\n\n",strcmp("Auto","Bus"));
  50.     printf("Rückgabewert von strcmp(\"Auto\",\"Xerxes\"): %i\n\n",strcmp("Auto","Xerxes"));
  51.     printf("Rückgabewert von strcmp(\"Bus\",\"Auto\"): %i\n\n",strcmp("Bus","Auto"));
  52.     printf("Rückgabewert von strcmp(\"Auto\",\"Auto\"): %i\n\n",strcmp("Auto","Auto"));
  53.     // Aufruf natürlich auch mit Variablen möglich
  54.     char wort[20]="Auto"; // Länge dieses Strings=5 (4 Zeichen + 1 Stoppzeichen)
  55.     char wort2[10]="bus"; // Länge dieses Strings=4 (3 Zeichen + 1 Stoppzeichen)
  56.     printf("Rückgabewert von strcmp(wort,wort2): %i\n\n",strcmp(wort,wort2));
  57.    
  58.    
  59.    
  60.     // String Concat (konkatieren = zusammenfügen, aneinanderhängen) ------------------------------------------------
  61.    
  62.     strcat(wort,wort2); // Der linke String wird um den rechten String verlängert (der rechte bleibt unverändert)
  63.                         // ACHTUNG: Es muss im linken Array genug Platz sein, um den Gesamt-String einzutragen
  64.                         // Es muss also gelten Länge von wort(20)
  65.                         // >= String1(4)[ohne Stoppzeichen]+String2(3)[ohne Stoppzeichen] + 1 Stoppzeichen
  66.     printf("wort=%s  wort2=%s\n\n",wort,wort2);
  67.    
  68.     //strcat(wort,"fahrer"); // Nun wird Autobus noch um fahrer verlängert 13 Zeichen + 1 Stoppzeich < 20=Länge von wort
  69.     printf("Array wort (Autobus) konkatiert mit "
  70.     "fahrer ergibt (Ausgabe über Rückgabewert von strcat): %s\n\n",strcat(wort,"fahrer"));
  71.     printf("Array wort (Autobus) konkatiert mit fahrer ergibt (Ausgabe über Startadresse von wort): %s\n\n",wort);
  72.    
  73.    
  74.    
  75.     // String Length ------------------------------------------------------------------------------------------------
  76.    
  77.     strlen(wort); // Rückgabewert: Die Länge des in wort gespeicherten Strings (OHNE Stoppzeichen)
  78.     printf("Länge des aktuellen Inhaltes von wort (%s): %i\n\n",wort,strlen(wort));
  79.    
  80.     system("pause");
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement