新手提问
怎样控制未知数量字符串的输入???????
[解决办法]
抱歉,之前看错了,"控制未知数量字符串的输入" 我看成 "控制未知数量字符的输入"
这下写好了,可以 控制未知数量字符串,并且每个字符串的字符个数可以任意(在内存可以正常分配的情况下)
#include <stdio.h>#include <stdlib.h>#include <string.h>struct StrNode{ char c; struct StrNode *link;};struct StrList{ struct StrNode *str; struct StrList *link;};struct StrNode* createStr_link(){ char ch; struct StrNode *s = (struct StrNode*)malloc(sizeof(struct StrNode)); struct StrNode *r = s; s->link = NULL; scanf("%c", &ch); while(ch != '\n') { struct StrNode* p = (struct StrNode*)malloc(sizeof(struct StrNode)); if(p == NULL) { printf("内存溢出!\n"); return s; } else { p->c=ch; p->link = NULL; r->link = p; r = p; } scanf("%c", &ch); } return s;}struct StrList* createStrList_link(){ struct StrNode *str = NULL; struct StrList *s = (struct StrList*)malloc(sizeof(struct StrList)); struct StrList *r = s; s->link = NULL; str = createStr_link(); while(str->link->c != '#') { struct StrList* p = (struct StrList*)malloc(sizeof(struct StrList)); if(p == NULL) { printf("内存溢出!\n"); return s; } else { p->str= str; p->link = NULL; r->link = p; r = p; } str = createStr_link(); } return s;}void printStr_link(struct StrNode *s){ struct StrNode *p = s->link; while (p!=NULL) { printf("%c", p->c); p=p->link; } printf("\n");}void printStrList_link(struct StrList *s){ struct StrList *p = s->link; while (p!=NULL) { printStr_link(p->str); p=p->link; } printf("\n");}int main(){ struct StrList *s = NULL; printf("请输入任意个字符串,输入#结束: \n"); s = createStrList_link(); printf("你输入的字符串为: \n"); printStrList_link(s); return 0;}