テキストファイルから読み込まれたいくつかのデータでリンクリストを作成し、ソートする必要があります。 私の構造:リンクリストを文字列比較でソートしようとしたときにエラーが発生しました
struct Person {
int age;
char *name;
struct Person *next;
};
typedef struct Person LIST;
ファイルからの読み込み:この後
while (fgets(line, sizeof(line), fp)) {
LIST *node = (Person*)(malloc(sizeof(Person)));
node->name = strdup(line);
node->next = NULL;
if (head == NULL) {
current = head = node;
}
else {
current = current->next = node;
}
}
fclose(fp);
私はちょうど罰金に見えるリンクリストをプリントアウトしています。
理想的には、年齢別にソートする必要がありますが、データを別々の変数に読み込むことに成功しませんでした。だから、私は文字列を比較してリストをソートしようとしました。それは 'nullptr'と言いますので、2つの条件を追加しました(current-> name [i]!= NULL)& &(current-> name [i + 1]!= NULL))を私の 'if'文に追加しましたただし、同じエラーが発生します。
for (int i = 0; i < 5; i++)
{
if ((current->name[i]!=NULL) && (current->name[i+1] != NULL) && ((current->name[i]) > (current->name[i + 1])))
{
char temp = NULL;
current->name[i] = temp;
current->name[i] = current->name[i + 1];
current->name[i + 1] = temp;
}
}
あなたの名前の_letters_をソートしています –
'current-> name'は文字配列です。 'current-> name [i]'は 'char'です。 –
、なぜi <5?それはどこから来たのですか? –