(単一の)リンクリストを使用して、単純なC従業員データベースプログラムをコーディングしています。現時点では、以下に示す「従業員の削除」関数を作成しようとしています。
while ループを使用してリンクされたリストを循環させようとしていますが、現在のポインター名フィールドがユーザーが削除したい名前と一致すると停止します。(linestore に格納されます。)
なんらかの理由で、最後までデータベースをループし続けます。各段階で linestore & currptr->name の内容を印刷しようとしましたが、正しいように見えるので、何が間違っているのかわかりません。
どんな助けでも大歓迎です。
従業員の削除機能:
char *lineptr;
char linestore[300];
lineptr = &linestore;
struct Employee *currptr = root;
struct Employee *prevptr = NULL;
fprintf(stderr, "\nPlease enter the EXACT name of the employee to be deleted.\n");
read_line(stdin, lineptr, MAX_NAME_LENGTH); //linestore function is working (checked)
while ( (currptr->name != linestore) & (currptr != NULL) )
{
fprintf(stderr, "\n***Searching database...***\n");
fprintf(stderr, "***The current record is %s", currptr->name);
prevptr = currptr;
currptr = currptr->next;
}
if ( currptr->name == linestore )
{
fprintf(stderr, "\n***Record DELETED.***\n");
}