在这里完成新手。在我的编程课程的第二天,所以要温柔。我们用C btw编程。
我们的任务是提示用户以格式给我们一个名字:John Smith,然后像这样将它打印出来;史密斯,J。
令人头疼的是,无论有多少空格,程序仍然必须执行。即John / n Smith,John / t smith和John / 0 Smith ..
这是我到目前为止所拥有的,
#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;
}
我的问题:我不知道如何从同一个缓冲区读取姓氏时打印姓氏。
有人可以向我解释我将如何做我的lname函数???此外,没有arraylists和没有字符串方法。
答案 0 :(得分:2)
为什么不使用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;
}
答案 1 :(得分:2)
请注意,除了其他答案中提到的问题外,还有以下表达式:
if (lettest != EOF || '\n' || '\t' || ' ')
不要按照您的预期行事 - 您需要将此特定示例编写为:
if (lettest != EOF && lettest != '\n' && lettest != '\t' && lettest != ' ')
或者更具表现力:
if (!(lettest == EOF || lettest == '\n' || lettest == '\t' || lettest == ' '))
答案 2 :(得分:0)
在这里关注getchar()
似乎适得其反;它读取字符,你想读整个单词(字符串)。查看例如而是scanf()
。如果您使用getchar()
有某种要求,则应在问题中这样说。