| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | 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
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |