Strings und zusätzlich noch Arrays?

Gast #1189407
Hi Leute,

ich habe 40 Strings, die ich gerne in einem Array speichern will. Also 
muss doch die dekleration so aussehen:

char strings[40][16];

Die Strings sind jeweils 16 Zeichen lang. Muss ich dann [16] oder [17] 
schreiben? [16] bedeutet doch 0-15 also sprich 16 Buchstaben könnte ich 
abspeichern, allerdings gibts ja die Nullbyteterminierung, also könnte 
ich nur 15 Buchstaben speichern oder?

So und jetzt gehts weiter, wie weiße ich der Variable dann eine 
Zeichenkette zu?

z.b.

strings[0] = "Strom";
strings[1] = "Spannung";
usw.

Aber so gehts ja nicht...
Kann mir da bitte jemand helfen, ich weiß es sollte in jede C-Buch 
stehen, aber da wird immer irgend eine Funktion zum Kopieren benutzt und 
da ich ja am µC diese Funktionen nicht habe, bin ich etwas ratlos... 
Oder muss ich mir so eine Funktion selbst schreiben???
#1189411
Gast wrote:
>
> char strings[40][16];
>
> Die Strings sind jeweils 16 Zeichen lang. Muss ich dann [16] oder [17]
> schreiben?

17

> [16] bedeutet doch 0-15 also sprich 16 Buchstaben könnte ich
> abspeichern,

Nein

> allerdings gibts ja die Nullbyteterminierung,

Genau

> also könnte
> ich nur 15 Buchstaben speichern oder?

Ja


> strings[0] = "Strom";

   strcpy( strings[0], "Strom" );

> strings[1] = "Spannung";


  strcpy( strings[1], "Spannung" );

> Oder muss ich mir so eine Funktion selbst schreiben???
http://www.mikrocontroller.net/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F
Gast #1189425
C:\Dokumente und Einstellungen\Administrator\Desktop\Mikrocontroller 
Programme\stringstest\default/../stringstest.c:9: undefined reference to 
`strcopy'


Ich hab oben aber stehen #include <string.h>

Hier der Code:
1
#include <avr/io.h>
2
#include <avr/pgmspace.h>
3
#include <string.h>
4

5
int main(void)
6
{
7
  RS232_Init();
8
  char strings[40][17];
9
  strcopy(strings[0], "Strom");
10
  strcopy(strings[1], "Spannung");
11
  while(1)
12
  {
13
    printf ("%s",strings[0]);
14
  }
15
}
#1189448
Gast wrote:
> Ja aber was muss ich machen, damit ich die funktion strpcy() benutzen
> kann???? Es kommt immer dieser Fehler!
Wenn Du strcpy richtig schreibst (also so, wie Karl heinz es Dir 
vorgegeben hat), dann sollte es auch keine Fehlermeldung geben. Eine 
Funktion strcopy gibt es aber nicht!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.