• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:検索機能)

名簿管理システムの検索機能についての質問

このQ&Aのポイント
  • 名簿管理システムに検索機能を追加する方法を教えてください。
  • 名簿管理システムにおいて、名前を指定して検索する方法について教えてください。
  • 名簿管理システムにおいて、検索機能を実装するための手順を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★アドバイス ・まずはメニューに検索を追加してみましょう。  static const char *menu[] = {   "--------command--------",   "1.Append",   "2.Delete",   "3.Show",   "4.Save",   "5.Find", ←これ追加   "9.Quit",   "-----------------------",   NULL,  }; int i;    // メニューの表示部  for ( i = 0 ; menu[i] != NULL ; i++ ){   puts( menu[i] );  } ・あと switch 文にも追加。  Node *find; ←宣言部に追加。    switch ( op ){   case 1:    :    省略    :   case 5:    printf( "name : " ); scanf( "%s", name );    find = FindNode( top, name ); ←name 文字列を検索して見つかったらそのポインタを返す    DispNode( find ); ←1つのノードを表示する関数    break;  } ・検索用の関数は次のようにすれば良い。 // 名前で検索 Node *FindNode( Node *top, const char name[] ) {  for ( ; top != NULL ; top = top->next ){   if ( !strcmp(top->name,name) ){    return top; ←見つかった場合   }  }  return NULL; ←見つからない場合 } その他: ・無限ループは while (1){ … } 以外にも for ( ; ; ){ … } でも出来ます。  void DispNode( Node *node ); は自分で作成してみて下さい。  ↑  この関数は node=NULL の場合は何も表示しないようにします。 ・以上。

kbasu
質問者

お礼

ありがとうございます。早速やってみます。