簡體   English   中英

C語言。 僅接受字母並分開兩個問題?

[英]C Language. Accept Alphabets only and seperate two questions?

我希望程序分別回答名字和姓氏,同時還要嚴格接受字母的輸入。 在哪里可以找到更多信息? 謝謝。

#include <stdio.h>

int main(void)
{
      char MyFname[20];
      char MyLname[20];
      printf("Enter your first and last names: \n");
      scanf(" %s %s", MyFname, MyLname);
      printf("Goodbye %s %s, have a great day!", MyFname, MyLname);
      return 0;
}

編輯以合並@chux的建議。

您可以在轉換規范字符串中使用字符類。

#include <stdio.h>
int main() {
    char alphabetic_string[80], numeric_string[80];

    scanf(" %79[a-zA-Z] %79[0-9]", alphabetic_string, numeric_string);

    return 0;
}

要問兩個獨立的問題,嗯, 請問兩個獨立的問題!

#include <stdio.h>
int main() {
    char ans1[80], ans2[80];

    printf("Input answer to question 1: ");
    fflush(NULL);
    scanf(" %79[a-zA-Z]", ans1);
    printf("Input answer to question 2: ");
    fflush(NULL);
    scanf(" %79[a-zA-Z]", ans2);

    return 0;
}
#include<stdio.h>
#include<stdlib.h>

int main()
{
  char buff[1024];
  char MyFname[20];
  char MyLname[20];

  if ( fgets ( buff, sizeof buff, stdin ) != NULL )
  {
    if ( sscanf ( buff, "%[a-zA-Z] %[a-zA-Z]", MyFname, MyLname ) != 2 ) 
    {
      fprintf ( stderr, "Invalid input\n" );
      exit ( EXIT_FAILURE );
    }
  }

  printf ( "Goodbye %s have a great day!\nGoodbye %s have a great day!", MyFname, 
  MyLname );

  return 0;

}

輸入您的名字和姓氏:

約翰·史密斯

再見約翰,祝您有美好的一天!

再見史密斯,祝你有美好的一天!

最好使用fgets進行輸入,然后使用sscanf進行驗證。 如果輸入的格式正確,sscanf將成功返回讀取的輸入總數。

輸入名字和姓氏(即約翰·史密斯)時,請不要忘記留出空格

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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