Avatar billede lotze Nybegynder
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
Avatar billede bertelbrander Novice
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;
}
Avatar billede thomas_nj Nybegynder
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;
}
Avatar billede thomas_nj Nybegynder
09. november 2003 - 23:03 #3
Lægger lige et svar, men det er jo bertelbrander, der kom først
Avatar billede arne_v Ekspert
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;
}
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