String kopieren



  • Hi, wie kann ich nur einen Teil eines Strings in eine char-Variable einlesen?
    Quasi soll der erste Buchstabe vom "grossen" String abgeschnitten werden, und nur der Rest genommen werden.
    Wie soll ich also nun erst ab dem 1. (Arrays beginnen ja bei 0) kopieren?

    strcpy(String_ohne_ersten_Buchstaben, Ganzer_String);
    


  • strcopy(&(string_ohne[1]),ganzerstring);

    wenn ich dich richtig verstanden hab, sollte das gehen.



  • char erster = ganzerstring[0];
    strcopy(string_ohne, ganzerstring+1);
    


  • nein das geht so nicht...sry aber brauche das ganz dringend! also, wenn der "grosse" string meinetwegen "a123456" enthaelt soll der kleine string dann nur "123456" also ohne "a" enthalten.



  • 😡 Und ob das geht! 😡

    Da!

    #include <stdio.h>
    
    int main() 
    { 
      char string_ohne[20];
      char *ganzerstring = "a12345";
    
      strcpy(string_ohne, ganzerstring+1);
      printf("%s\n", string_ohne);
    
      return 0;
    }
    


  • thx, kA hab beim ersten mal wohl was falsch gemacht 😃 thx
    wie funzt das denn da eigentlich?



  • XFame schrieb:

    wie funzt das denn da eigentlich?

    Man übergibt strcpy() eben nicht einen Zeiger auf das erste Element (ganzerstring), sondern einen Zeiger auf das zweite Element (ganzerstring+1)...



  • warum geht dann nicht

    strcpy(string1, &string2[1]);
    

    ???



  • Vermutlich weil die Strings eben noch anders hießen.



  • SeppSchrot schrieb:

    😡 Und ob das geht! 😡

    Auch dieses mal... 🙄



  • XFame schrieb:

    warum geht dann nicht

    strcpy(string1, &string2[1]);
    

    ???

    Das geht auch. Allerdings ist das doppelt gemoppelt. Du holst dir erst den Wert auf den string2 + 1 Zeichen zeigt und willst dann davon die Adresse. Außerdem sieht das meiner Meinung nach unschön aus.

    SeppSchrot schrieb:

    😡 Und ob das geht! 😡

    Sei mal nicht so impulsiv! Du warst am Anfang auch nicht besser.


Log in to reply