Avatar billede lincoln Nybegynder
13. januar 2003 - 19:46 Der er 2 kommentarer og
2 løsninger

Sende en char fra en funktion til en anden

Jeg har indlæst indholdet af en fil med:
fread(inText,20500,1,in);

Nu kunne jeg godt tænke mig at lave en funktion x(inText), der tager indholdet af inText og gør et-eller-andet ved det. Bagefter skal x returnerer inText til der hvor x blev kaldt.

Hvordan skal jeg deklarere x? (altså som int, void, char etc etc)

Jeg temmelig meget newbie inden for C, men har erfaring med PHP og Delphi, og jeg har derfor meget lidt styr på C's måde at håndtere variabeltyper på.
Avatar billede soreno Praktikant
13. januar 2003 - 20:10 #1
hvis teksten f.eks. er:
hello world

så skal metode, efter intensiv beregning, f.eks. returnere:
world

?
Avatar billede kondi.koder Nybegynder
13. januar 2003 - 20:12 #2
Hejsa !

Hvis jeg nu f.eks. vil tilføje "Sheep" til inText, så ville funktionen se således ud:

#include <string.h>
void x (char * & textToFix)
{
  strcat (textToFix, "Sheep");
}

Denne funktion ÆNDRER på det ene parameter den kaldes med. Håber det var det du mente.

- kondi.koder :-)
Avatar billede arne_v Ekspert
13. januar 2003 - 20:42 #3
void x(char *inText)
{
  inText[0] = 'A';
  inText[1] = 'B';
  return;
}

sets the first two characters in inText to AB.
Avatar billede i_know Nybegynder
14. januar 2003 - 06:52 #4
...
char* txt2;
...
fread(inText,20500,1,in);
txt2=BevarOriginal(inText); // Lav en kopi af inText og gør noget ved kopien
cout << txt2 << " - " << inText;
Goer_et_eller_andet(inText); // Gør noget ved inText uden at lave en kopi
cout << txt2 << " - " << inText;
free(txt2);

// Her gør vi et eller andet ved teksten.
void Goer_et_eller_andet(char* txt)
{
  int i, j;
  char c;

  j=strlen(txt)-1;
  for(i=0;i<strlen(txt)/2;i++) {
    c=txt[i];
    txt[i]=txt[j];
    txt[j--]=c;
  }
}

// Denne funktion laver en kopi af teksten og ændrer kun i kopien
char* BevarOriginal(char* txt)
{
  char* t2=malloc(strlen(txt));
  strcpy(t2, txt);
  Goer_et_eller_andet(t2);

  return(t2);
}
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