请问如何利用C语言中malloc函数解决多行字符串的问题?请各位高手指点。
比如设计一个程序,第一行输入要处理的字符串行数为n(n不确定)且每行字符的个数有限(如为至多为50个),下面如何利用动态数组,输入并处理这行字符串?...
比如设计一个程序,第一行输入要处理的字符串行数为n(n不确定)且每行字符的个数有限(如为至多为50个),下面如何利用动态数组,输入并处理这行字符串?
展开
3个回答
2013-07-11
展开全部
行啊,不要只认为动态申请就只有malloc,还有calloc,它就能办到!calloc的用法和malloc一样,就是多了一个参数,你就当它是行数吧,也许它就是为了解决这些才有的! int *a;printf("Input row, and colloumn:\n");scanf("%d%d", &row,&col);a = (int *) calloc(row, col*sizeof(int );这样不就行了!现在就可以把当作a[i*col+n](i小于row,(行数),n就是小于col了,即一行的个数的第几个)来用是一样的了,去试试吧,我记得也应该没错,很少用这个啦`其实malloc也行啊a = (int *) malloc( row*col*sizeof(int );这样就分配了这么多个了这么多,然后a[I*col+n] 来用好像道理就一样了哦!
2013-07-11
展开全部
C不太好解决,要从数据结构和输入一起来做,如果是C++的话就简单多了,LZ要哪个?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-11
展开全部
#define MCHR 51......char *p, *buf, **lin;
p = buf = (char *)malloc(sizeof(char) * MCHR * n);
lin = (char **)malloc(sizeof(char **) * n);int i;
for (i=0; i < n; i++,p+=MCHR) {
*p = NULL;
lin[i] = p;
}
p = buf = (char *)malloc(sizeof(char) * MCHR * n);
lin = (char **)malloc(sizeof(char **) * n);int i;
for (i=0; i < n; i++,p+=MCHR) {
*p = NULL;
lin[i] = p;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询