J'essaie d'écrire un programme pour insérer des espaces entre les mots afin de les adapter à une colonne, par exemple :
- Vous lisez dans une ligne de texte, par ex :
Good morning how are you?
- Vous lisez dans la largeur de la colonne, par exemple :
40
. - Ensuite, j'ai compté combien d'espaces il y a dans ce texte (4).
- Je dois maintenant répartir les espaces restants entre ces mots pour que la longueur du texte soit de 40.
Par exemple :
Good morning how are you?
1234567890123456789012345678901234567890
Mon problème se pose lorsque j'essaie d'insérer les espaces entre les mots, car je ne sais pas comment faire. Voici ce que j'ai jusqu'à présent.
#include <stdio.h>
#include <string.h>
char text[65], spaces[50], ch;
int i, remainder, spacesr, count, column, length, distribution;
int main(){
i = 0;
count = 0;
printf("Please enter a line of text: ");
while(ch != '\n')
{
ch = getchar();
text[i]=ch;
i++;
}
text[i]='\0';
printf("Text: %s",text);
printf ("Please enter the width of the column: ");
scanf ("%d", &column);
for (i = 0; text[i] != '\0'; i++) {
if (text[i] == ' ') {
count++;
}
}
length = strlen(text);
spacesr = column - length;
distribution = spacesr / count;
remainder = spacesr % count;
if (length > column) {
printf ("ERROR: Length of text exceeds column width.");
}
}
J'ai calculé le nombre d'espaces dans le texte lu, puis j'ai calculé le nombre d'espaces restants, puis j'ai divisé ce nombre par le nombre d'espaces pour déterminer combien d'espaces je dois mettre entre chaque mot. Le reste de ces espaces sera réparti uniformément après que les espaces principaux auront été saisis.
Qu'entendez-vous par espaces principaux ?
En gros, je veux faire tenir la phrase "Bonjour, comment allez-vous ?" dans une colonne de 40 caractères de large en ajoutant des espaces entre les mots. Est-il possible de faire quelque chose comme ceci :
for (i = 0; text[i] != '\0'; i++) {
if (text[i] == ' ') {
then add a certain amount of spaces to it