Avatar billede djmaster Nybegynder
20. august 2008 - 11:49 Der er 7 kommentarer og
1 løsning

Funktion der ændrer i en streng (array af chars)

Har et lille problem med noget C.

Vil have en funktion som hovedprogrammet kalder, og som ændrer en streng som bliver sendt med som parameter.

Noget i stil med dette:

I main koden:
char strengtest[100];
int i;
i = 0;

replacestring( i, &strengtest );

i replacestring funktionen:

void replacestring  (int t, char* strengtest) 
{

    if(status == 0){
        strengtest = "Variabel er lig 0";
    }
    if(status != 0){
        strengtest = "Variabel er ikke lig 0";;
    }
   
}

Det er nok tydeligt at se at jeg har lidt problem når det kommer til pointere og det er da også der problemet ligger, tror jeg.

Nogle der kan hjælpe
Avatar billede stefanfuglsang Juniormester
20. august 2008 - 12:03 #1
Man kan ikke med en char [] bruge =
strengtest = "Variabel"
skal være
strcpy(strengtest,"Variabel")
Avatar billede stefanfuglsang Juniormester
20. august 2008 - 12:04 #2
... og hvor er status defineret?
Avatar billede djmaster Nybegynder
20. august 2008 - 12:30 #3
ups, status skulle bare være t.

For fejlen:
Type error in argument 2 to `replacestring'; found 'pointer to array 100 of char' expected 'pointer to char'.
Avatar billede djmaster Nybegynder
20. august 2008 - 12:41 #4
Har også ændret:

strengtest = "Variabel er lig 0";

til

strcpy(strengtest,"Variabel...")
Avatar billede djmaster Nybegynder
20. august 2008 - 13:10 #5
Nu virker det. Men er det sådan man gør det?

I main koden:
char strengtest[100];
int i;
i = 0;

replacestring( i, &strengtest[0] );

i replacestring funktionen:

void replacestring  (int t, char* strengtest)
{

    if(status == 0){
        strcpy(strengtest,"Variabel lig nul")
    }
    if(status != 0){
        strcpy(strengtest,"Variabel ikke lig nul")
    }
 
}

Lig et svar Stefan
Avatar billede stefanfuglsang Juniormester
20. august 2008 - 13:25 #6
Jeg tror jeg ville lave noget i stil med (ikke testet, derfor ingen garanti for korrekthed!):

char strengtest[100];
int i;
i = 0;

replacestring( i, strengtest );

i replacestring funktionen:

void replacestring  (int t, char* strengtest)
{
    if(t == 0){
        strcpy(strengtest,"Variabel lig nul");
    else
        strcpy(strengtest,"Variabel ikke lig nul");
 
}
Avatar billede stefanfuglsang Juniormester
20. august 2008 - 13:25 #7
char strengtest[100];
int i;
i = 0;

replacestring( i, strengtest );

i replacestring funktionen:

void replacestring  (int t, char* strengtest)
{
    if(t == 0)
        strcpy(strengtest,"Variabel lig nul");
    else
        strcpy(strengtest,"Variabel ikke lig nul");
 
}
Avatar billede djmaster Nybegynder
20. august 2008 - 13:39 #8
Ok, det kan jeg da også lige prøve.

Du skal have tak for hjælpen
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

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