Sauberer Weg, um entfernen Sie den Teilstring von str in C

Habe ich den folgenden string ID is a sample string remove to /0.10 möchte ich am Ende mit den folgenden: ID/0.10.

Dies ist, was ich kam mit. Jedoch, ich bin auf der Suche nach einem sauberen/schöneren Weg, dies zu tun.

#include <stdio.h>
#include <string.h>

int main ()
{
    char str[] = "ID is a sample string remove to /0.10";
    char *a = strstr(str, "ID");
    char *b = strrchr (str, '/');
    if (a == NULL)
        return 0;
    if (b == NULL)
        return 0;

    int p1 = a-str+2;
    int p2 = b-str;
    int remL = p2 - p1;
    int until = (strlen(str) - p1 - remL) +1;

    memmove (str+p1, str+(p1+remL), until);
    printf ("%s\n",str);
    return 0;
}
Rechts das, was ich suchte. Danke!

InformationsquelleAutor Kayla | 2012-06-03

Schreibe einen Kommentar