永发信息网

如何对多行输入进行存储,操作?求大神

答案:3  悬赏:40  手机版
解决时间 2021-12-21 12:39
请问,我有以下类型的输入
noon
sleep
1001
如何编程,将输入分别存储起来,譬如说noon存在一个地方,sleep存在一个地方,因为我最后还要对每行分别判断,这个字符串是不是回文数。
请各位大神,编程告诉我怎么存储每行的输入,怎么对每行分别输出。用c语言。
输入是
noon
sleep
1001
0
判断,以第n行的第一个字符是不是0,作为结束。如果是0,就结束。
最佳答案
方法有很多,例如可以用二维数组,或者指针数组,例如:

//---------------------------------------------------------------------------

#include
#include
#include

char *readln(void) //读取一行字符串并返回首地址
{
char ch,*st=NULL;
int i=0;
while ((ch=getchar())!='\n')
{
if (st==NULL&&ch=='0') return NULL;
else if (st==NULL) st=(char*)malloc(sizeof(char));
else st=(char *)realloc(st,sizeof(char)*(i+1));
if (st==NULL) exit(-1);
st[i++]=ch;
}
st=(char *)realloc(st,sizeof(char)*(i+1));
st[i]='\0';
return st;
}
void prt(char **str,int n) //输出所有的字符串
{
int i;
for (i=0; i printf("%s\n",str[i]);
}
}
int check(char *a)
{
int i=0,j;
j=strlen(a)-1;
while (i {
if (a[i]!=a[j]) return 0;
i++;
j--;
}
return 1;
}
void freestr(char **st,int n) //释放为字符串分配的空间
{
int i;
for (i = 0; i free(st[i]);
}
free(st);
}

int main(void)
{
char **strs=NULL,*ln;
int i=0,j;

//这个do-while数组用于读取所有的字符串
do
{
ln=readln();

if (ln!=NULL&&strs==NULL) strs=(char **)malloc(sizeof(char *));
else if (ln!=NULL) strs=(char **)realloc(strs,sizeof(char *)*(i+1));
if (ln!=NULL&&strs==NULL) exit(-1);

if (ln) strs[i++]=ln;
}while(ln);
prt(strs,i);
putchar('\n');

for (j=0; j printf("%s %s\n",strs[j],check(strs[j])?"是回文":"非回文");
}

freestr(strs,i);
return 0;
}
//---------------------------------------------------------------------------
全部回答
请问你输入的顺序也是这样的么,之后的输入也是像 noon sleep 1001 这么输入么?
这个比较复杂,基本上需要做一个字符分析器。读取文件然后逐字符读取字符,然后判断是数字还是运算符号;标记运算类型,读取字符一直到把所有的数据读取完后进行相应的操作。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
解答题根据家兔和狼的牙齿图解,回答有关问题
宁陵县商丘小肥牛火锅在哪里啊,我有事要去这
男装服装店名大全
写小说怎么签约
通河县哈尔滨通河县东方白酒专卖地址是什么,
Pets are popular. They’re good listeners,
手机支付宝怎么看评价
这种装饰眼镜,拆镜片的话,按照常规方式实在
夏邑县商丘欧雅顿养生理疗馆地址在哪里啊
张杰的三生三世mp3还有吗?求!!!
单选题Althoughhehadtospendlotsofmoneyf
馨雨花艺地址在哪,我要去那里办事
不肖子孙是什么意思
伍家岗区宜昌都市丽人(伍临小区西北)怎么去啊
龙珠超里那个全王上面应该还有更大的神吧?
推荐资讯
诸暨到宁波动车要多久
短文改错(共10小题; 每小题1分, 共10分)下
我都郁闷死了,在学而思报班就那么难吗
搭讪我好像在哪见过你
门盈喜气花盈目 春满冰城福满家上下联的意思
去野三坡玩,有什么好玩的项目推荐下?
三门峡到济源多少公里
从深圳地王大厦怎么去东门?
切30的角钢选用什么齿型的带锯条?
套装是什么意思
两个互相暗恋的人对视几秒后男方先主动对女生
京东商城会买到假货吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?