簡體   English   中英

C編程:名稱編排! 編碼newb?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM