Witzig, ich habe ein ganz ähnliches Problem. Meine Lösung - entstanden durch "kreativen" Umgang mit einem Tutorial -- in C (bzw. GTK) sieht bisher so aus:
Code:
/* Datei-Extension löschen */
#include <stdio.h>
#include <string.h>
#include <gtk/gtk.h>
int main(void)
{
gchar *loc;
gchar *basic_string;
gchar *old_string = "Eine.weitere.Datei.tex";
gsize n;
/* Suchen und kopieren */
loc = g_strrstr(old_string, ".");
n = (gsize)(loc-old_string);
basic_string = g_strndup(old_string, n);
/* Ergebnisse. */
if ( loc == NULL ) {
printf("Das Zeichen . wurde nicht gefunden.\n");
} else {
printf("Das Zeichen . wurde an der Position %d gefunden.\n", n);
printf("Der alte String lautet: %s\n", old_string);
printf("Der neue String lautet: %s\n", basic_string);
g_free(basic_string);
}
return(0);
}
Meine zentrale Frage ist aber eigentlich: Geht das noch kürzer - sprich: kann man die drei Zuweisungen in der Mitte noch weiter reduzieren? Und vor allem: Woher kommt die Bezeichnung "loc-old_string"?
Lesezeichen