06. februar 2006 - 14:35
Der er
12 kommentarer
At dele string op
Hejsa! Jeg har en string der f.eks. ser således ud: c:\lala\lala\,hehehe,traaa Nu vil jeg gerne putte dette ind i tre forskellige strings, så de ender sådan her: str1 = c:\lala\lala\ str2 = hehehe str3 = traaa Hvordan gør jeg dette? Med venlig hilsen, Jon
Annonceindlæg fra Infor
06. februar 2006 - 15:32
#1
strtok maaske
06. februar 2006 - 15:37
#2
eksempel som splitter paa mellemrum: #include <stdio.h> #include <string.h> int main() { char s[256],*p; printf("Enter line: "); fgets(s,sizeof(s),stdin); s[strlen(s)-1]='\0'; p = strtok(s, " "); printf("%s\n",p); while((p=strtok(NULL," "))!=NULL) { printf("%s\n",p); } return 0; }
06. februar 2006 - 15:39
#3
jeg ved faktisk ikke hvad det tilsvarende for C++ STL string er
06. februar 2006 - 20:58
#4
Jeg kender heller ikke nogen let metode i C++, så man er nok nødt til at kaste sig ud i: #include <iostream> #include <string> int main() { std::string In = "c:\\lala\\lala\\,hehehe,traaa"; std::string::size_type p1 = In.find(','); std::string::size_type p2 = In.find(',', p1 + 1); std::string Out1 = In.substr(0, p1); std::string Out2 = In.substr(p1 + 1, p2 - p1 - 1); std::string Out3 = In.substr(p2 + 1); std::cout << Out1 << "|" << Out2 << "|" << Out3 << std::endl; }
07. februar 2006 - 14:40
#5
arne, hvordan får jeg så programmet til at skrive disse brudstykker ind i nogle variabler??
07. februar 2006 - 14:46
#6
Jeg har nu et stykke kode der ser således ud: void ArgumentHandling(int argc, char *argv[1]) { char argstring[300] = "", *p; if(argc > 1) { int i; for (i = 1; i < argc; i++) { strcat(argstring, argv[i]); } } argstring, sizeof(argstring), stdin; argstring[strlen(argstring)-1] = '\0'; p = strtok(argstring, ","); printf("%s\n" ,p); while((p = strtok(NULL, ","))!=NULL) { printf("%s\n",p); } getch(); } argstring består af de argumenter programmet bliver kaldt med - sti,filtype,excludeliste - eksempel: c:\hej\,dll,excludes.txt, De tre ovenstående værdier skal så ligges ind i følgende tre variabler: WhereToSearch, WhatToSearchFor og ExcludeList. På forhånd tak! :) Jon
07. februar 2006 - 15:20
#7
strcpy
08. februar 2006 - 10:08
#8
:) Så langt havde jeg tænkt... Men mere hvordan, rent praktisk... I en for-løkke eller...?
08. februar 2006 - 10:09
#9
Koden ser nu således ud: void ArgumentHandling(int argc, char *argv[]) { char argstring[300] = "", *token, seperator[] = ",;"; if(argc > 1) { int i; for (i = 1; i < argc; i++) { strcat(argstring, argv[i]); } } token = strtok(argstring, seperator); while(token != NULL) { printf("%s\n", token); token = strtok(NULL, seperator); } getch(); }
08. februar 2006 - 12:22
#10
Jeg fixede det med switch og case inde i while-løkken.
08. februar 2006 - 14:36
#11
hvis du skal returnere noget fra den funktion skal du bruge strcpy
22. april 2006 - 23:24
#12
tid at få afsluttet her ?
Kurser inden for grundlæggende programmering