Zum Inhalt springen

(C) Frage zu einstellung der Stringlänge ?


tnightlife

Empfohlene Beiträge

Strings gibt's in C strenggenommen nicht, nur nullterminierte char-Arrays.

char Ein[x+1];
Das geht so aber nur nach dem C-Standard von 1999, den unterstützt nicht jeder Compiler. Nach dem alten Standard (1990) musst du das mit malloc machen:
char* Ein = malloc(x+1);
// Am Ende free nicht vergessen![/code]

Link zu diesem Kommentar
Auf anderen Seiten teilen

hier das programm, das programm hat das ziel alle vocale zu finden und wort für wort die vokal anzahl zu wiedergeben und die anzahl aller worte im text, es können am anfang und am ende leerzeichen auftreten


int *addVocalCount(char *Ein){

    int EinL, i=0, j=1, start, Anzahl=0, Nach[];

    EinL = strlen(Ein);

    while(Ein[i]=' ')&&(i<EinL){

    i=i+1;

    }

    start = i;

    while(i<EinL){

    if(Ein[i]=' '){

    Anzahl = Anzahl+1;

    while(Ein[i]=' '){

    i=i+1;

    }

    i=i+1

    }

    if(strrchr(Ein)=' '){

    Anzahl=Anzahl+1;

    }


    Nach[] = malloc(sizeof(Anzahl+1));

    Nach[0] = Anzahl;

    while(1<=i<Anzahl){

    Nach[i]=0

    }

    while(start<=i<EinL){

    if(isVocal(Ein[i])){

    Nach[j]++

    }

    if(Ein[i]=' '){

    j=j+1;

    while(Ein[i]==' '){

    i=i+1;

    }

    }

    return Nach;

Link zu diesem Kommentar
Auf anderen Seiten teilen

ist das so richtig

Nach[] = malloc(sizeof(Anzahl+1));

wenn Anzahl meine variable ist

Nein.

Erstens musst du einen Zeiger deklarieren, wenn du malloc benutzt, kein Array. Zweitens benutzt du sizeof falsch. sizeof liefert dir die Größe eines Typen. Wenn du ein Array mit malloc dynamisch reservierst, musst du die Anzahl der Arrayelemente mit der Größe eines Arrayelements multiplizieren. Bei char-Arrays kannst du dir letzteres sparen, weil sizeof(char) per Definition 1 ist.


int* Nach = malloc((Anzahl+1)*sizeof(int));[/code]

Link zu diesem Kommentar
Auf anderen Seiten teilen

so richtig kenne ich den aunterschied zwischen array und string garnicht, darum sage ich mal das oder das hehe;-)

Ein Array ist eine Ansammlung von Werten eines Typs mit einer festen Größe.

Ein String ist ein char-Array mit dem Zeichenkettenendekennzeichen ('\0').

Link zu diesem Kommentar
Auf anderen Seiten teilen

ja fällt mir jetzt auch wieder ein das sizeof für die länge des datentyps war, gut ich habe jetzt einfach mal Nach[Anzahl+1] benutzt oben bei der deklaration und habe alles mit malloc & co. weggelassen. es kommt aber immer wieder dieser fehler beim ersten while 8 expected identifier before '(' token

ich komme da einfach nicht weiter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...