gpt4 book ai didi

getop() 中的说明

转载 作者:太空狗 更新时间:2023-10-29 15:21:46 29 4
gpt4 key购买 nike

在 Dennis Ritchie 的《C 程序设计语言》一书中,在 getop 函数中,他说 s[1]='\0'他为什么要在索引 1 上结束数组?有什么意义和需要?

在后面的部分他确实使用了数组的其他部分..

int getch(void);
void ungetch(int);

/* getop: get next character or numeric operand */
int getop(char s[])
{
int i, c;
while ((s[0] = c = getch()) == ' ' || c == '\t')
;
s[1] = '\0';

if (!isdigit(c) && c != '.')
return c; /* not a number */

i = 0;
if (isdigit(c)) /* collect integer part */
while (isdigit(s[++i] = c = getch()))
;

if (c == '.') /* collect fraction part */
while (isdigit(s[++i] = c = getch()))
;
s[i] = '\0';

if (c != EOF)
ungetch(c);

return NUMBER;
}

最佳答案

因为函数可能会在读取剩余输入之前返回,然后 s 需要是一个完整的(并终止的)字符串。

关于getop() 中的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30184190/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com