Anfängerfrage zu Strings am LCD

Gast #4800891
Lesenswert?
• ▲
▼
Ich versuche zwei Strings am LCD ausgeben.
Die erste Zeile wird am LCD ausgegeben. Die zweite gar nicht. Warum?
1
void item_ausgabe(void)
2
{
3
  char zahl[16]="HALLO";
4
  lcd_clear();
5
  lcd_setcursor( 0, 1 );
6
   lcd_string("Hallo"); // Ausgabe der 1. Zeile
7
   
8
  lcd_setcursor( 0, 2 );
9
  lcd_string(zahl); // Ausgabe der 2. Zeile
10
}

1
void lcd_string( const char *data )
2
{
3
  while( *data != '\0' )
4
  lcd_data( *data++ );
5
}
#4800937
Lesenswert?
• ▲
▼
Jay K. schrieb:
> Christian S. schrieb:
>> Hallo,
>>
>> was passiert, wenn Du schreibst:
>>
>> lcd_string (&zahl);
>>
>>
>> MfG
>
> Naja da Array entweder &zahl[0] übergeben oder zahl[0].
>
> Dann wird der Compiler nur noch meckern weil &zahl[0] vom Typ char* ist
> und nicht const char* wie von der Funktion lcd_string erwartet

Copy paste-Fehler:

Naja da Array entweder &zahl[0] übergeben oder zahl (Name des Arrays 
zerfällt zu pointer auf das erste Element.
Gast #4801037
Lesenswert?
• ▲
▼
Danke für die Hilfe.

Wie ist es wenn ich einen Text im Array, der in einer Struktur 
gespeichert ist ausgeben möchte.
1
struct item 
2
{
3
  char zeile_eins[16];  // Ausgabe der 1. Zeile
4
  char zeile_zwei[16];  // Ausgabe der 2. Zeile
5
  uint8_t wert;  // Aktueller Wert der Einstellung
6
};
7

8
  struct item a10 =
9
  {
10
    "Anzahl Schritte",
11
    "4",
12
    4,
13
    
14
  };

So geht es nicht
1
  lcd_string(a10.zeile_eins); // Ausgabe der 2. Zeile


Der Versuch den String in eine Hilfsariable zu kopieren und diese dann 
auszugeben scheitert ebenfalls.
1
  char zahl[16];
2
  strcpy(zahl, a10.zeile_eins[0]);

Ich muss dringend meine C-Kenntnise auffrischen, aber wenn jemand helfen 
kann, bitte ich darum)

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