C Programmation: Nom arrangeur! Codage newb?
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.
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.