Array to String



  • Hi!

    Gibt es in C eine Funktion, um ein Array in einen String zu wandeln?
    Also. z.B.

    arr = {'a', 'b', 'c'} in char = 'abc'
    

    Danke!



  • Fast richtig geraten.
    So könnte es gehen:

    char arr[] = {'a', 'b', 'c',0};
    puts(arr);
    


  • Und wenn ich z.B. ein Array habe mit {A, B, C, D, X} und alle Elemente bis auf das X in einen String wandeln möchte?



  • xy345 schrieb:

    Und wenn ich z.B. ein Array habe mit {A, B, C, D, X} und alle Elemente bis auf das X in einen String wandeln möchte?

    int i;
    char text[] = { 'A', 'B', 'X', 'C', 'D', '\0' };
    for ( i = 0 ; text[i] != 0 ; i++ )
    {
       if (text[i] == 'X')
          continue;
    
       putc (text[i]);
    }
    


  • xy345 schrieb:

    Und wenn ich z.B. ein Array habe mit {A, B, C, D, X} und alle Elemente bis auf das X in einen String wandeln möchte?

    char arr[] = {'a', 'b', 'c',0};
    

    arr ist bereits ein 0 terminiertes Character-Array und somit im üblichen Sprachgebrauch ein String. Weißt du überhaupt was ein String ist oder besser noch - was du mit so einem Datenkonstrukt anfangen willst?



  • Mir geht es grundsätzlich um folgendes:

    Wenn ich z.B. Zeichen in ein Array einlese
    habe ich ja ein Array mit i Elementen. Wenn ich nun die Zeichen durch
    logische Operatoren vergleichen möchte, muss ich ja immer a la

    if (receiveArray[0] == 'A' && receiveArray[1] == 'B') usw.
    

    vorgehen.
    Kann ich dieses Array in z.B. einen String umwandeln, sodass ich einfach
    z.B.

    if (receive == 'AB') usw.
    

    verwenden kann?



  • Vermutlich suchst du strcmp, bzw. strncmp:

    if(!strncmp(receiveArray, "AB", 2)) // edit: Klammer vergessen
    {
    ...
    }
    


  • Hast du meinen vorigen Beitrag gelesen?
    Verstanden hast du ihn jedenfalls nicht.
    arr ist ein String.
    Und weil arr ein String ist braucht man
    - ihn nicht in einen String wandeln
    - kann auf ihn/es sämtlich str Standardfunktionen anwenden wie strcmp,strstr,str*...
    oder konkret

    if( !strcmp(arr,"AB") )
      puts("string ist gleich");
    


  • Danke yahendrik!



  • Ja, das ist ein typisches Problem für Einsteiger in C.
    Strings sind in C kein eigenständiger Datentyp, sondern arrays auf char. Das muss man zunächst verstehen und lernt dann auch, was man mit Zeigern so anfangen kann. Da muss jeder durch! 🙂


Anmelden zum Antworten