09. november 2003 - 22:23
Der er
3 kommentarer og 1 løsning
Lille fiks program
Jeg skal lave et lille fiks program der kan fjerne / og . fra en string. /home/polle.txt skal konverteres til homepolletxt
Annonceindlæg tema
09. november 2003 - 22:57
#1
Jeg ved ikke om det er fiks, men det ser ud til at gøre det det skal: #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, char *argv[]) { char *s; if(argc != 2) { fprintf(stderr, "You must specify an string, and nothing else\n"); return EXIT_FAILURE; } while((s = strchr(argv[1], '.')) != NULL || (s = strchr(argv[1], '/')) != NULL) strcpy(s, s + 1); printf("%s\n", argv[1]); return 0; }
09. november 2003 - 23:02
#2
Har lavet et lille hurtigt kodeeksempel der kan løse dit problem. Du skal nok finde lidt bedre navne til variablerne men ideen er her da: #include <iostream> #include <cstdlib> #include <string> using namespace std; int main() { string test="hej/dk/g.g"; // Strengen string buf; // Midlertidigt lager for(int taeller_test=0, taeller_buf=0; taeller_test<=test.size(); taeller_test++, taeller_buf++) { if((test[taeller_test]!='/')&&(test[taeller_test]!='.')) { buf.push_back(test[taeller_test]); } } test=buf; cout<<test<<endl; system("pause"); return 0; }
09. november 2003 - 23:03
#3
Lægger lige et svar, men det er jo bertelbrander, der kom først
09. november 2003 - 23:20
#4
Jeg ville lave det som: C: #include <stdio.h> int main(int argc, char *argv[]) { int i,ix; char buf[100],*p; p = argv[1]; ix = 0; for(i=0;i<strlen(p);i++) { if((p[i] != '/') && (p[i] != '.')) { buf[ix] = p[i]; ix++; } } buf[ix] = '\0'; printf("%s\n",buf); return 0; } C++: #include <iostream> #include <string> using namespace std; int main(int argc, char *argv[]) { string buf = ""; string s = argv[1]; for(int i=0;i<s.length();i++) { if((s[i] != '/') && (s[i] != '.')) { buf += s[i]; } } cout << buf << endl; return 0; }
Kurser inden for grundlæggende programmering