array übergeben...



  • welche möglichkeiten gibt es da noch ein array zu übergen und dann returnen...

    cu

    void reverse(char *pi, int size)
    {
       char arr[20];
       memset(&arr, 0, sizeof(arr));
    
       unsigned int j=0;
       for(unsigned i=10; i>0; i--)
       {
          arr[j++] = pi[i];
       }
    
       strcpy(pi, arr);
    }
    
    int main() 
    {
       char arr[13];
       memset(&arr, 0, sizeof(arr));
       strcpy(arr, "teststring");
       reverse(arr, 12);
    
       cout << arr;
    
       cin.get();
    
       return 0;
    }
    


  • hallo, hier nix c++, hier ansi c!

    mfg hohesC

    bsp:

    void array(char *arr)
    {
        //array bearbeiten!
    }
    
    int main(int argc,char **argv)
    {
        char *ap;
        char string[20];
    
        ap=&string[0];
    
        array(ap);
    
    ...
    ...
    }
    

    damit bearbeitest du den string über den pointer direkt!
    da brauchst nix returnen!!!

    mfg hohesC



  • hi!

    is das auch so ok??

    cu

    void reverse(char pi[], int size)
    {
       char arr[13];
       memset(&arr, 0, sizeof(arr));
    
       unsigned int j=0;
       for(int i=size-1; i>=0; i--)
       {
          arr[j++] = pi[i];
       }
    
       arr[j] = '\0';   // brauch ich das hier? oder reicht das wenn ich memset '\0' mache?
       strcpy(pi, arr);
    }
    
    int main(void) 
    {
       char arr[] = "Max ist brav";
       cout << arr << endl;
       rueckwaerts(arr, 12);
    
       printf("%s\n", arr);
    
       getch();
    
       return 0;
    


  • ka ahnung was du machen willst,
    hier der code der funktioniert und c ist!

    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    
    void reverse(char *pi, int size) 
    { 
       char arr[13]; 
       unsigned int j=0;
       int i;
    
       memset(&arr, 0, sizeof(arr)); 
    
       for(i=size-1; i>=0; i--) 
       { 
          arr[j++] = pi[i]; 
       } 
    
       strcpy(pi, arr); 
    } 
    
    int main(int argc,char **argv) 
    { 
       char arr[] = "Max ist brav"; 
    
       puts(arr); 
    
       reverse(arr, 12); 
    
       puts(arr); 
    
       getch(); 
    
       return 0; 
    }
    

    mfg hohesC



  • muss ich da den string nicht mit '\0' determinieren?

    cu


Anmelden zum Antworten