[英]C Programming: Name arranger! Coding newb?
在這里完成新手。 在我介紹編程課的第二天,請保持溫柔。 我們正在用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,也沒有字符串方法。
為什么不使用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;
}
請注意,除了其他答案中提到的問題外,表達式還包括:
if (lettest != EOF || '\n' || '\t' || ' ')
不會像您期望的那樣表現-您需要將此特定示例編寫為:
if (lettest != EOF && lettest != '\n' && lettest != '\t' && lettest != ' ')
或更具表現力:
if (!(lettest == EOF || lettest == '\n' || lettest == '\t' || lettest == ' '))
在這里專注於getchar()
似乎適得其反; 它讀取字符,並且您想讀取整個單詞(字符串)。 查看例如scanf()
。 如果有某種要求使用getchar()
,則應在問題中這樣說。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.