Zeichen aus char Array in neuem char Array speichern

OP (Firma: Student FHNW) #4852351
Lesenswert?
• ▲
▼
Guten Abend

Ich schreibe momentan an einem C-code für meinen ATMEGA2561. für meine 
Frage konnte ich online nichts befriedigendes finden [vielleicht war ich 
auch zu doof].

Nun zu meiner Frage: Ich habe zwei char Arrays und will nun einzelne 
Zeichen aus dem einen Array in das andere Array übertragen. Hier mein 
Code:

#include <stdio.h>

int main(void){

  char txText[120] = "radio tx ";
  char dBuffer[20] = "35929910576AB235";

  for(int i = 0; i==10; i++){
    txText[9+i] = dBuffer[i];

}

  printf("\n%s", txText);

  return 0;

}

Ich habe den Code hier http://ideone.com/8zIU4r und bekomme als ausgabe 
nur "radio tx ". Wo liegt mein Problem das ich einzelne Zeichen nicht in 
einer for-Schleife einzeln übergeben kann (zum beispiel die ersten 10 
zeichen)

Vielen Dank für die Antworten.
Rafael
#4852556
Lesenswert?
• ▲
▼
Rafael E. schrieb:
> Guten Abend
>
> Ich schreibe momentan an einem C-code für meinen ATMEGA2561. für meine
> Frage konnte ich online nichts befriedigendes finden [vielleicht war ich
> auch zu doof].
>
> Nun zu meiner Frage: Ich habe zwei char Arrays und will nun einzelne
> Zeichen aus dem einen Array in das andere Array übertragen. Hier mein
> Code:
>
> #include <stdio.h>
>
> int main(void){
>
>   char txText[120] = "radio tx ";
>   char dBuffer[20] = "35929910576AB235";
>
>   for(int i = 0; i==10; i++){
>     txText[9+i] = dBuffer[i];
>
> }
>
>   printf("\n%s", txText);
>
>   return 0;
>
> }
>
> Ich habe den Code hier http://ideone.com/8zIU4r und bekomme als ausgabe
> nur "radio tx ". Wo liegt mein Problem das ich einzelne Zeichen nicht in
> einer for-Schleife einzeln übergeben kann (zum beispiel die ersten 10
> zeichen)
>
> Vielen Dank für die Antworten.
> Rafael

Damit solche (einfachen) Fehler nicht passieren, sollte man statt 
expliziter Schleifen lieber fertige Algorithmen benutzen:

http://en.cppreference.com/w/cpp/string/byte/strcat

Noch besser wäre - auch wenn man sonst gar nicht OOP macht, sich 
wenigstens eine gescheite StringBuffer-Klasse bzw. template zu 
schreiben. Dann gehört so etwas auch ein für alle mal der Geschichte an 
...
#4852967
Lesenswert?
• ▲
▼
Harald N. schrieb:
> Seit wann muss man in C die \0 selber anhängen?

Schon immer, wenn man das char-Array als Array behandelt und nicht als 
String. In der Schleife überschreibt er das '\0' aus der Initialisierung 
von txText und setzt kein eigenes.

Harald N. schrieb:
> Abgesehen davon, dass es
> ja \0 und nicht 0 (und auch nicht '0') ist.
und was ist der dezimale Wert des Character '\0'? :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren