1

アルファベットのみの入力を受け付けながら、名前と姓を別々に応答するプログラムが必要です。それについての詳細情報はどこにありますか?? ありがとう。

#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;
}
4

2 に答える 2

1

@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;
}

2 つの別々の質問をするには、ええと、2 つの別々の質問をしてください。

#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;
}
于 2013-09-17T03:48:33.180 に答える
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 は読み取られた入力の総数を正常に返します。

姓と名を入力するときは、スペースを空けることを忘れないでください。例: John smith

于 2013-09-17T04:15:03.480 に答える