题目:
采用指针而非数组索引的方式改写前面章节和练习中的某些程序,例如getline(第1、4章),atoi、itoa以及它们的变体形式(第2,3,4章),reverse(第3章),strindex、getop(第4章)等等。
自我解答:
4.1中的getline函数如下
#define MAXLINE 1000
/* get a line and return the length of the line */
int getline(char s[], int lim)
{
int c, i;
i = 0;
while(--lim && (c = getchar()) != EOF && c != '\n')
s[i++] = c;
if(c == '\n')
s[i++] = c;
s[i] = '\0';
return i;
}
指针实现时除了传参改成了char *s,函数主体没有任何变化,上述的getline程序本质也是指针的实现
/* get a line and return the length of the line */
int getline(char *s, int lim)
{
int c, i;
i = 0;
while(--lim && (c = getchar()) != EOF &&