Word Wrap



  • Hallo!

    Ich habe folgendes Problem. Ich würde gerne einen Word-Wrapper machen der nach 15 Zeichen ein "ENTER" mach und wenn bei diesem Zeichen noch ein Wort oder Punkt oder ähnliches ist soll er es beim 14. machen usw.
    Das hab ich auch schon geschafft aber ich weiß nicht wie ich das in einem ganzen Absatz mache.

    Hier der Code:
    [code="c"]#include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    int main () {
    int i = 15;
    int j = 0;
    int k;
    char text[] = "Das ist ein Text um den Word Wrap zu zeigen";
    printf("%s\n", text);
    j = strlen(text);
    k = j;

    printf("%d",j);

    while(*text)
    {

    if (text[i]==' ' )
    {
    text[i] = '\n';
    j = j - i;
    i=15;
    break;
    }
    i--;

    }

    printf("\n%s\n %d", text, j);
    }[code]
    Hoffentlich könnt ihr mir helfen.

    Lg Martin



  • ups, war leider nicht eingeloggt
    Hier der richtig formatierte Code

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main () {
    	int i = 15;
    	int j = 0;
    	int k;
        char text[] = "Das ist ein Text um den Word Wrap zu zeigen";
    	printf("%s\n", text);
        j = strlen(text);
    	k = j;
    
    	printf("%d",j);
    
    		while(*text) 
    		{
    
    		if (text[i]==' ' )
    		{
    		text[i] = '\n';
    		j = j - i;
    		i=15;
    		break;
    		}
    		i--;
    
    		}
    
    		printf("\n%s\n %d", text, j);
    }
    

  • Mod

    kornilenkoo schrieb:

    Das hab ich auch schon geschafft aber ich weiß nicht wie ich das in einem ganzen Absatz mache.

    Indem du das gleiche noch einmal machst, aber dort anfängst, wo du aufgehört hast. Dies machst du so lange, bis du auf das Ende des Textes stößt. Dabei helfen dir Schleifen und Funktionen.

    Reicht dies als Hinweis?



  • SeppJ schrieb:

    kornilenkoo schrieb:

    Das hab ich auch schon geschafft aber ich weiß nicht wie ich das in einem ganzen Absatz mache.

    Indem du das gleiche noch einmal machst, aber dort anfängst, wo du aufgehört hast. Dies machst du so lange, bis du auf das Ende des Textes stößt. Dabei helfen dir Schleifen und Funktionen.

    Reicht dies als Hinweis?

    Mit schleifen hab ichs schon probiert aber da hängt sich mein Programm immer auf.
    Hatte die idee, dass ich text[i+k-j] mache aber das ging nicht

    Zu Funktionen: bin leider noch ziemlich neu beim programmieren, wie realisiert man das?


  • Mod

    kornilenko schrieb:

    Mit schleifen hab ichs schon probiert aber da hängt sich mein Programm immer auf.
    Hatte die idee, dass ich text[i+k-j] mache aber das ging nicht

    Da ich nicht genau weiß, wie du es versucht hast, kann ich nur raten: Das Problem ist höchstwahrscheinlich, dass deine Variablen für deinen Algorithmus quasi global sind. Und dann kommst du wahrscheinlich mit den Werten durcheinander. Du darfst Variablen auch in inneren Gültigkeitsbereichen definieren, zum Beispiel

    while (noch_text_da)
    {
      int i = 15;
    
      // ... dein Algorithmus, der i benutzt...
    }
    

    Zu Funktionen: bin leider noch ziemlich neu beim programmieren, wie realisiert man das?

    Das kann ich nicht mal eben so erklären. Kommt sicherlich sehr bald in deinem Lehrbuch dran.


Anmelden zum Antworten