/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Nyt problem...
Fra : JS


Dato : 19-11-04 00:27

Jeg har forsøgt at få denne kode til at du uden den store succes, håber
nogen kan hjælpe:

#include <stdio.h>

void strcpy (char x[], char y[])
{
int i;

i = 0;
while ((x[i] = y[i] != '\0')
i +=1;
}


int main(int argc, char *argv[])
{
char p;
p = strcpy("aasdf","sdgd");
printf("%d\n",p);
fgetc(stdin);
return 0;
}

Mvh
Johs



 
 
Bertel Brander (19-11-2004)
Kommentar
Fra : Bertel Brander


Dato : 19-11-04 00:45

JS wrote:

> Jeg har forsøgt at få denne kode til at du uden den store succes, håber
> nogen kan hjælpe:
>
> #include <stdio.h>
>
> void strcpy (char x[], char y[])

Man må ikke kalde sine egne funktioner for strxxx, find
et bedre navn.

> {
> int i;
>
> i = 0;
> while ((x[i] = y[i] != '\0')

Der mangler en ) i linien ovenfor

> i +=1;
> }
>
>
> int main(int argc, char *argv[])
> {
> char p;
> p = strcpy("aasdf","sdgd");
Man kan ikke kopiere noget over i "aasdf", lav et
array:
char Dest[1023];

Og brug det som første argument i kaldet til din strcpy.
Din strcpy returnerer ikke noget, du kan ikke sætte p
til at være "ikke noget".
Du ville måske have din strcpy til at returnere destinationen,
så skal den returnere en char *, og p skal være en char *

> printf("%d\n",p);

Når du får ændret p til en char * skal du ændre %d til
%s

> fgetc(stdin);
> return 0;
> }


--
"I learned more from a three minute record
than I ever learned in school"
- Bruce Springsteen

Igor V. Rafienko (19-11-2004)
Kommentar
Fra : Igor V. Rafienko


Dato : 19-11-04 15:10

[ dsa.@asdf.com ]

[ ... ]

Bertel Brander har allerede påpekt en rekke feil ...


> void strcpy (char x[], char y[])
> {
> int i;
>
> i = 0;
> while ((x[i] = y[i] != '\0')


.... men her er det noe som ikke stemmer: siden du mangler en parentes,
er det litt vanskelig å gjette seg fram til hva du mente, men vær klar
over at uttrykket:

x[i] = y[i] != '\0'

.... betyr

x[i] = (y[i] != '\0')

(dvs. x[i] får alltid verdien 0 eller 1), siden != har høyere
presedens. Det er neppe det du ville.

[ ... ]





ivr
--
My compiler compiled yours
            - Visual C++ .Net 2003 motto

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste