substr
-
hi,
hat von euch schon jemand eine funktion geschrieben mitder man ein char-array teilen kann. also soeine funktion hier
char *strsub(char *text, size_t start, size_t length) { }
ich brauch sone funktion unbeding aber ich bekomms einfach nicht hin... kann mir jemand helfen?
mfg blan
-
sowas?
#include <stdio.h> void split (char *in, char *left, char *right, int i) { char *pt = in + i; while (*in) { if (in < pt) *left++ = *in; else *right++ = *in; in++; } *left = 0; *right = 0; } void main (void) { char left[256]; char right[256]; split ("hellosplitter", left, right, 5); printf ("links: %s\nrechts: %s\n", left, right); }
:xmas2:
-
net schrieb:
sowas?
#include <stdio.h> void split (char *in, char *left, char *right, int i) { char *pt = in + i; while (*in) { if (in < pt) *left++ = *in; else *right++ = *in; in++; } *left = 0; *right = 0; } void main (void) { char left[256]; char right[256]; split ("hellosplitter", left, right, 5); printf ("links: %s\nrechts: %s\n", left, right); }
:xmas2:
danke.. sowas in der art.
ich möchte gern ein char-array angeben und dann 2 positionen... einmal den anfang und einmal die länge. dann gibt er mit den teil aus dem angegeben char-array zurück.
bsp:
strsub("hello world", 2, 3) ergibt "llo" ... sowas gibts glaub bein den C++ Strings..
mfg blan
-
dann probier dies:
void substr (char *in, char *out, unsigned int start, unsigned int count) { char *first = in + start; char *last = first + count; while (*in) { if (in >= first) *out++ = *in; if (in++ == last) break; } *out = 0; }
:xmas2:
-
Hm, strncpy( )
Fast as hell...
Greetz, Swordfish