我正在創建用戶輸入的字符串的鏈接列表。截至目前,我有我的鏈接列表工作(我只需要釋放內存)。但是,我試圖在用戶輸入中檢測逗號。如果有逗號,則鏈接列表會打印出一個新行,並忽略逗號。搜索LinkedList中的元素
有什麼建議嗎?
例如:
輸入一個字符串:
你好,世界,怎麼樣,是,你
輸出是目前:
你好,世界怎麼,是,你
輸出sh烏爾德是:
你好
世界
如何
你
這裏是我當前的代碼:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
struct Word
{
char* data;
struct Word* next;
};
struct Word* ptr = NULL;
void insert(char c)
{
struct Word* temp = (struct Word*)malloc(sizeof(struct Word));
temp->data = c;
temp->next = NULL;
if (ptr) {
struct Word* temp1 = ptr;
while(temp1->next != NULL) {
temp1 = temp1->next;
}
temp1->next = temp;
} else {
ptr = temp;
}
}
void print() {
struct Word *temp;
temp = ptr;
while(temp != NULL) {
printf("%c", temp->data);
temp = temp->next;
}
printf("\n");
}
int main(int argc, char *argv[])
{
int c;
printf("enter a string\n");
while (((c=getchar())!=EOF) && c!='\n') {
insert((char)c);
}
print(); /*print the list*/
return 0;
}
你爲什麼要使用pointer-to-char來存儲一個簡單的char!這個答案也很明顯是錯誤的,因爲它沒有指示做正確的事情:'char * data'應該是'char data',現在代碼中充滿了未定義的行爲 - 您應該編譯時啓用所有警告! –