Avatar billede Daniel.E Praktikant
27. august 2004 - 15:25 Der er 5 kommentarer og
1 løsning

erstatte ord med tal fra streng

char *words[] = {"abc","def"};

int tal1=5;
int tal2=10;

char *streng = "abc10def40";

hvis ordene 'abc' og 'def' skulle erstattes af tallene tal1 og tal2,  men kun hvis ordene fandtes i 'words' variablen. 
Ordene skal så blive erstattet af den værdi som er tilknyttet dem.
Se nedenunder.

{"abc"==>'tal1',"def"==>'tal2'}

Er der en nem måde at gøre det på ?
Avatar billede Daniel.E Praktikant
27. august 2004 - 15:26 #1
det skal siges at char *words[] = {"abc","def"}; ikke altid er en char* variablen, men kan også godt være en structur.
Avatar billede Daniel.E Praktikant
27. august 2004 - 15:47 #2
og selve 'char *streng = "abc10def40";' har ikke den samme længe altid.  DEn kunne ligeså godt indeholde "2asd12asdsad232ads9asdsadas90"
Avatar billede arne_v Ekspert
27. august 2004 - 18:17 #3
char *fnd[] = {"abc","def"};
char *rpl[] = {"tal1","tal2"};
char s[] = "en lang streng medvilkårligt i";
for(int i=0;i<2;i++) replace(s,fnd[i],rpl[i]);

hvor:

void replace(char *s,char *s1,char *s2)
{
  int i,j;
  char *tmp;
  tmp = (char *)malloc(strlen(s)+1);
  strcpy(tmp,s);
  i = 0;
  j = 0;
  while(i<strlen(tmp)) {
      if(strncmp(tmp+i,s1,strlen(s1))==0) {
        strcpy(s+j,s2);
        i=i+strlen(s1);
        j=j+strlen(s2);
      } else {
        s[j]=tmp[i];
        i++;
        j++;
      }
  }
  s[j] = '\0';
  free(tmp);
  return;
}
Avatar billede Daniel.E Praktikant
27. august 2004 - 19:29 #4
arne_v jeg synes det er tit vi mødes her på eksperten :) he he

giv dit svar :)
Avatar billede arne_v Ekspert
27. august 2004 - 19:31 #5
svar
Avatar billede Daniel.E Praktikant
27. august 2004 - 19:32 #6
hvis du skulle ned på 0 point igen skulle du oprette ca 1220 spørgsmål på hver 200 point..hehe
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





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis