Problème: http://docs.cs50.net/problems/initials/more/initials.html Comme je l'ai dit dans le titre, je ne peux pas obtenir le programme pour sortir les initiales sans espaces si l'utilisateur entre des espaces supplémentaires avant le nom ou entre des espaces supplémentaires entre le prénom et le nom.Comment traiter plusieurs espaces avant ou entre les mots dans les initiales de CS50 (plus à l'aise)?
À l'heure actuelle, cela ne fonctionne que si je saisis mon nom comme: First Last sans espaces avant le nom et un seul espace entre les deux mots. Il imprime FL sans espaces supplémentaires. Je veux qu'il le fasse, peu importe combien d'espaces supplémentaires j'ai avant ou entre le prénom et le nom de famille.
Mon code actuel:
#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <ctype.h>
int main(void) {
printf("Name: ");
string s = get_string();
printf("%c", toupper(s[0]));
for (int i = 0; i < strlen(s); i++) {
if (s[i] == ' ') {
printf("%c", toupper(s[i +1]));
}
}
printf("\n");
}
Une façon de le faire est d'utiliser une variable pour contenir le caractère précédent. Si le caractère précédent était un espace et que le caractère courant n'est pas un espace, affichez le caractère en cours en majuscules. – user3386109
Il y a un [échange de pile cs50] (http://cs50.stackexchange.com/) si vous êtes intéressé. – pmg