Hallo,
wie der ein oder andere vieleicht weiß, befasse ich mich seit Gestern mit der C Programmierung unter Linux.
Ich habe mal folgenden Code geschrieben:
--------------------------------------------------------------------
#include <stdio.h>
#include <string.h>
#include <time.h>
int main(void){
system("clear");
// Darf die Variable "wort1" nur 5 Zeichenwerte haben?
char wort1[5];
char wort2[5];
int zahl;
int erg;
int b;
int lang;
int a;
printf(" Erwarte eingabe: \n");
erg=scanf("%s %s %d",&wort1,wort2, &zahl);
if(erg!=3)
{
printf("Es fehlt etwas!");
}
else
{
printf("Du hast: %s und %s und wie Zahl: %d eingegeben!\n Ergebniss: %d \n",wort1,wort2,zahl,erg);
lang=strlen(wort1);
for(a=0;a < lang;a++)
{
//Sollten hier nicht die Buchstaben des eingegebenen Wortes kommen?? Bekomme aber die Meldung: Speicherzugriffsfehler!
printf("%s",wort1[a]);
}
}
return 0;
}
--------------------------------------------------------------------
Ist die Variable die ich mit "char" deklariert habe kein Array?
Ich habe zwar:
char wort1[5];
eingegeben und verstehe das so das jetzt nur 5 Zeichen gültig sind, also so:
wort1[0] = "S"
wort1[2] = "e"
wort1[3] = "l"
wort1[4] = "f"
wort1[5] = "\0"
Ich habe mir strlen die länge des Wortes ausgelesen und mit einer for-schleife wollte ich mir nun die einzelnen Buchstaben ausgeben lassen, aber ohne erfolg.
Gebe ich aber ein Wort mit nicht 5 sondern 10 Zeichen ein, wird das trotzdem angenommen, wieso wenn das doch auf 5 begrenzt ist?
Danke für Hilfreiche antworten!