Question

débutant complet ici. 2ème jour dans mon introduction à la classe de programmation, alors soyez gentil. Nous programmons en C btw.

Notre mission était d'inviter l'utilisateur à nous donner un nom au format suivant: John Smith, puis l'imprimer arrière à eux comme si; Smith, J.

Pour ajouter au casse-tête du programme doit encore effectuer indépendamment du nombre des espaces vides, il y a. à savoir John / n Smith, John / t Smith et John / 0 Smith ..

Voici ce que j'ai à ce jour,

#include <stdio.h>

int input()
{
    printf("Enter your name: \n");
    int lettest = getchar ();
    return (lettest);
}

void fname() 
{
    int lettest;
    if (lettest != EOF || '\n' || '\t' || ' ')
    {
        printf("%c.", lettest);
        lettest = getchar();
    }
    else;
}
void lname() 
{
    int lettest;
    if (lettest != EOF || '\n' || '\t' || ' ')
    {
        printf("%c.", lettest);
        lettest = getchar();
    }
    else;
}

int main () {

    input();
    lname();
    //fflush(stdin);
    fname();

    return 0;
}

Mes problèmes: je ne sais pas comment imprimer le nom de famille quand il est à la fois la lecture du même tampon ..

Quelqu'un peut-il me expliquer comment je ferais ma fonction lname ??? En outre, aucun ArrayLists et aucune méthode de chaîne.

Était-ce utile?

La solution

Notez que, en plus des problèmes mentionnés dans d'autres réponses, des expressions telles que:

if (lettest != EOF || '\n' || '\t' || ' ')

ne se comportent pas comme vous attendez à - vous devez écrire cet exemple particulier:

if (lettest != EOF && lettest != '\n' && lettest != '\t' && lettest !=  ' ')

ou peut-être plus expressivement:

if (!(lettest == EOF || lettest == '\n' || lettest == '\t' || lettest ==  ' '))

Autres conseils

Pourquoi utilisez-vous pas scanf?

include <stdio.h>
int main() {
char f[20],l[20]; //assume a name is less then 20 letters.
printf("What is your name?\n");
scanf("%s %s",f,l);
printf("%s, %c.\n",l,f[0]);
return 0;
}

Mettre l'accent sur getchar() semble ici contre-productif; il lit des caractères et que vous voulez lire des mots entiers (cordes). Regardez dans exemple scanf() à la place. S'il y a une sorte d'exigence que vous utilisez getchar(), vous devriez le dire dans la question.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top