C-Programmierung

Funktionen zur Manipulation von Zeichenketten

Zeichenkettenlänge | | Arrays und Zeiger

Weitere in string.h enthaltene Funktionen zur Manipulation von Zeichenketten:

  • strcat: Konkatenation zweier Strings
    • char *str = strcat(str1, str2);
  • strchr: Zeichensuche (erstes Auftauchen eines Zeichens)
    • char *c = strchr(str, 'a');
  • strrchr: Zeichensuche rückwärts (letztes Auftauchen eines Zeichens)
  • strstr: Suche nach Substring (erstes Auftauchen)
    • char *c = strstr(str, sub);
  • strcmp: Vergleich zweier Strings (0: gleich, 1 größer, −1 kleiner)
    • Vergleich im Sinne von ‘a’<’z’ bzw. “abc”<”acb”
    • int c = strcmp(str1, str2);
  • strcasecmp: Vergleich ohne Unterscheidung der Gross/Klein-Schreibung
    • strcasecmp("work", "Work") == 0
  • strcpy: Kopieren eines Strings (ähnlich memcpy())
    • strcpy(dest, source);
  • strtol, strtof, strtod: Umwandeln eines Strings in long, float, double
    • double strtod(const char *str, char **end_ptr);
  • sscanf, sprintf: wie scanf bzw. printf, aber Ausgabe in einen String
    • sprintf(str, "%d", 42);

Ausführliche Informationen zu den entsprechenden Funktionen gibt es via man, z.B. man strlen.

Q Was bewirkt str1==str2 im Unterschied zu strcmp(str1, str2)?

Adressenvergleich

Q Was ist der Unterschied zwischen memcpy und strcpy, zwischen strcpy und strdup?

Länge, Allozierung

Q Wie wandelt man am schnellsten einen String zwischen Gross- und Kleinschreibung?

const char str[]="Gross", *ptr=strdup(str);
while (*ptr++ = tolower(*ptr));


Zeichenkettenlänge | | Arrays und Zeiger

Options: