String in char- Array schreiben



  • Hallo,

    habe eine Anfängerfrage, komme aus der Java- Ecke und mir ist nicht klar, wie ich einen String in ein char- Array speichere.
    Ich habe folgenden Code:

    char buffer[100];
    while(Bedingung)
     printf("%d) %s\n", run, dirEntry->d_name);  // befindet sich in einer Schleife
    

    d_name ist ein char[] und ich möchte die d_name'n alle in char buffer[] mit einem Beistrich als Trennung speichern.
    Wie mache ich das am Besten.

    Vielen Dank,
    Generic1



  • irgendwie so ( pointer + strcat/strcpy/memcpy )

    char buffer[100];
    char * p = buffer;
    char * end = &buffer[100];
    while ( Bedingung ){
       size_t len = strlen(dirEntry->d_name);
       if ( p + len + 1 < end ){ /* Grenzen musst du immer selbst prüfen */
         memcpy(p,dirEntry->d_name,len);  /* oder auch: strcat(p,dirEntry->d_name) ; */
         p=p+len;
        *p++='-'; /*trennzeichen*/
      }
      else {
        /*buffer zu klein, entsprechend behandeln und eventuell schleife beenden */
      }
    }
    if (p  > buffer ){
    *--p='\0';
    }
    else {
    *p='\0';
    }
    


  • Besten Dank,
    hat geklappt,
    lg


Anmelden zum Antworten