新人来报到,求C语言大神
大神你们好,新人来报到的,看了the c programming language这本书,自己练习着编写一个关于指针数组的程序.运行的时候出错.实在解决不了,上来求大神解惑.
这个程序是这样的,假如输入12345\n abcde\n EOF,我想把输入转化为12345\0 abcde\0 EOF ,并保存在main提供的数组line中,并让一个指针数组*lineprt[]指向每一个字符数组的开头.即*lineprt[0]指向'1', *lineprt[1]指向a.
代码如下:
#include <stdio.h>
#define MAX 1000
char *lineptr[100]; //指针数组,指向输入的每一行开头
char line[MAX]; //最多字符数
int getline(char *lineprt[] ,char line[]);
int main()
{
int nlines;
nlines = getline(lineptr, line);
int i = 0;
while( nlines-- > 0)
printf("%s",*lineptr[i++]);
}
/*getline函数,输入流中读取字符,保存到line[]中,*lineprt[nlines]指向每一行开头,返回行数 */
int getline(char *lineptr[], char line[] )
{
int i = 0;
int nlines = 0; //表示读入的行数
char c;
lineptr[nlines] = line;
for ( i = 0 ; (c = getchar()) != EOF; i++){
if( c != '\n')
line[i] = c;
else {
line[i] = '\0'; //把换行符改成'\0',标记字符字组结束
lineptr[++nlines] = &line[++i];
--i;
}
}
return nlines;
}
我是用VS2010的,求大神相助,如果大神有什么好的算法或者方法也请务必告诉我,不用具体代码,方法就行,
射射大神