请问s[1]=‘\0’有什么用呢,若表示结束符,那字符串必此处截止?若表示赋值0,s[1]将始终为0了?
程序如下:intgetch(void);voidungetch(int);//getop函数,获取下一个运算符或数值操作数intgetop(chars[]){inti,c...
程序如下:
int getch(void);
void ungetch(int);
//getop函数,获取下一个运算符或数值操作数
int getop(char s[])
{
int i,c;
while((s[0]=c=getch())==' '|| c=='\t ')
; // 忽略空格和TAB.
s[1]=' \0'; /*??有什么用呢??*/
if(!isdigit(c) && c != '.') /*如果c不是数字或小数点,则 终止函数执行,返回c的取值*/
return c; //如果第一个子符不是数字也不是小数点,那么就返回这个字符。这时候上面的s[1]=0就有用了,因为main里要把s当作字符串处理。
i=0;
if(isdigit(c)) //收集整数部分
while(isdigit(s[++i]=c=getch())) /*读取整数部分,读取到非数字为止,并将该数字存放到变量c中*/
;
if(c=='.') //收集小数部分
while(isdigit(s[++i]=c=getch())) /*读取小数部分,读取到非数字为止,并将该数字存放到变量c中*/
;
s[i]=' 0';//此处应为斜杠零,因为编辑器的原因显示的有问题
if(c!=EOF)
ungetch(c); /*将c存入缓冲区中*/
return NUMBER;
}
请大虾们指点一下啊!! 展开
int getch(void);
void ungetch(int);
//getop函数,获取下一个运算符或数值操作数
int getop(char s[])
{
int i,c;
while((s[0]=c=getch())==' '|| c=='\t ')
; // 忽略空格和TAB.
s[1]=' \0'; /*??有什么用呢??*/
if(!isdigit(c) && c != '.') /*如果c不是数字或小数点,则 终止函数执行,返回c的取值*/
return c; //如果第一个子符不是数字也不是小数点,那么就返回这个字符。这时候上面的s[1]=0就有用了,因为main里要把s当作字符串处理。
i=0;
if(isdigit(c)) //收集整数部分
while(isdigit(s[++i]=c=getch())) /*读取整数部分,读取到非数字为止,并将该数字存放到变量c中*/
;
if(c=='.') //收集小数部分
while(isdigit(s[++i]=c=getch())) /*读取小数部分,读取到非数字为止,并将该数字存放到变量c中*/
;
s[i]=' 0';//此处应为斜杠零,因为编辑器的原因显示的有问题
if(c!=EOF)
ungetch(c); /*将c存入缓冲区中*/
return NUMBER;
}
请大虾们指点一下啊!! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询