Avatar billede nameless Nybegynder
04. december 2003 - 16:51 Der er 4 kommentarer og
1 løsning

SplitString funktion

Da jeg er lidt nybegynder i C++ har jeg brug for hjælp.

Findes der en funktion i c++ (bruger borland compiler) der kan splitte en char* ?
fx skal jeg splitte
char *Filnavne = "c:\test.txt>>>c:\test1.txt";
sådan jeg har to char* med "c:\test.txt" & "c:\test1.txt"

Skal bruge noget lign denne prototype:
void SplitString(char *New1, char *New2, char *TheString, char *SplitParam);
Var selv ved at rode med overstående men kan ikke få det til at virke.. Skulle have den til at tage og splitte TheString i 2 : New1 & New2 med pagrametrene: SplitParam


Håber ikke det lyder for forvirrende..
Avatar billede arne_v Ekspert
04. december 2003 - 17:09 #1
Noget a la:

void SplitString(char *New1, char *New2, char *TheString, char *SplitParam)
{
  char *p = strstr(TheString, SplitParam);
  strncpy(New1, TheString, p-TheString);
  New1[p-TheString] = '\0';
  strcpy(New2, p+strlen(SplitParam));
}
Avatar billede arne_v Ekspert
04. december 2003 - 17:14 #2
#include <stdio.h>
#include <string.h>

void SplitString(char *New1, char *New2, char *TheString, char *SplitParam)
{
  char *p = strstr(TheString, SplitParam);
  strncpy(New1, TheString, p-TheString);
  New1[p-TheString] = '\0';
  strcpy(New2, p+strlen(SplitParam));
}

int main()
{
    char p1[100],p2[100];
    SplitString(p1,p2,"c:\\test.txt>>>c:\\test1.txt",">>>");
    printf("%s %s\n",p1,p2);
    return 0;
}
Avatar billede arne_v Ekspert
04. december 2003 - 17:15 #3
Hvis strengen ikke findes så vil strstr returnere NULL, så et
test:

if(p!=NULL)

var måske en god ide, men jeg ved ikke, hvad der skal gøres i så fald.
Avatar billede nameless Nybegynder
04. december 2003 - 18:11 #4
Nice der :)
Sådan et lille ekstra spørgsmål:
Kender du et sted hvor der er en slags libary over de forskellige commandoer i de forskellige "includes"..
På forhånd tak
Avatar billede arne_v Ekspert
04. december 2003 - 18:13 #5
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester