我正在创建用户输入的字符串的链接列表。截至目前,我有我的链接列表工作(我只需要释放内存)。但是,我试图在用户输入中检测逗号。如果有逗号,则链接列表会打印出一个新行,并忽略逗号。搜索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',现在代码中充满了未定义的行为 - 您应该编译时启用所有警告! –