getop()是个什么涵数

如题所述

你好!
你说的这个getop()函数,不是标准库中的函数,应该是《the c programming language》这本书中的一个例子当中的函数,它的作用是读取一个数值,下面是它的原代码:
int getop(char s[])
{
int i, c;
while ((s[0] = c = getch()) == ' '|| c == '\t')
; //如果是空格或者制表符,跳过;
s[1] = '\0'; //如果不是空格或者制表符,把字符赋给c并且保存在
// s[0]中,把s[1]置为结束符,因为数组s是以’\0’结尾的
if (!isdigit(c) &&c != ‘.’)
return c; //如果c不是数字也不是点,返回c(c为操作符)
i = 0;
if (isdigit(c)) //c是整数的情况
while (isdigit(s[++i] = c = getch()))
; //把下一个字符赋给s[1],直到字符不为数字为止
if (c == ‘.’ ) //如果是小数点的情况
while (isdigit(s[++i] = c = getch()))
; //收集小数部分
s[i] = ‘\0’; //赋给结束符’\0’;
if (c != EOF) //如果不是结束符的话,返回c
ungetch(c);
return NUMBER; //返回数字的标识
}

希望可以帮到你,祝你好运!
温馨提示:内容为网友见解,仅供参考
无其他回答

getop()是个什么涵数
你好!你说的这个getop()函数,不是标准库中的函数,应该是《the c programming language》这本书中的一个例子当中的函数,它的作用是读取一个数值,下面是它的原代码:int getop(char s[]){ int i, c;while ((s[0] = c = getch()) == ' '|| c == '\\t'); \/\/如果是空格或者制表...

请问c语言中 返回number有什么意义呢?#define number ‘0’有什么意义...
大哥,断章取义就不好了嘛,type是getop()这个函数的返回值啊,它的返回值不代表就是操作数啊。

getop函数解惑(c 语言)
return c; \/* not a number *\/ 如果没有s[1] = '\\0';在返回的时候s里放了一个字符,但是如果没有'\\0\\的标识,那么s没有结尾,在外部程序使用的时候可能会出错.

请问如何用static来修改getop函数,使getop函数不使用ungetch函数呢?
要使getop函数不使用 ungetch 函数,可先声明一个常量:static int *c1=&EOF;然后在getop函数倒数三行的 if(c!=EOF)前加上 &c=&c1;就可以了.这样,c的内容永远是EOF;则if(c!=EOF)的参数永远是false,那么里面的 ungetch(c); \/*将c存入缓冲区中*\/ 将无法得到执行.

我该怎么办? LNK2019: 无法解析的外部符号
你在主函数中定义了 int getop(char[]);void push(double);double pop(void);这三个函数。但没有具体子函数可供调用。

急求急急急急急求,急求用C语言编写一个计算器程序,代码量为三百行左右...
include <stdlib.h>#include <stdio.h>#include <string.h>#define MAXOP 100#define NUMBER '0' \/\/标识读入的是数字#define NAME 'n' \/\/标识读入的是字符串(函数名或非法字符串)#define ALPHA 26 int getop(char []);void push (double); \/\/压栈double pop(void); \/\/...

...+ - * \/ 平方 开方,只能用到函数调用的功能,因为我只学到这里,_百...
c = a + b; if('-' == d) c = a - b; if('*' == d) c = a * b; if('\/' == d) c = a*1.0\/b; if('^' == d) c = a*a; printf("%d%c%d=%lf\\n",a,d,b,c); return 0;} ...

求助~~c语言做超大整数的加减,用栈实现
StGetTop(Stack *s){ double t;if(!StEmpty(s)){ t=s->data[s->top];} else { printf("StGeTop:The stack is empty!");t=NULL;} return t;} \/*将数字字符转换成整形*\/ int ChrTransferint(char c){ int n;switch(c){ case '0': n=0;break;case '1': n=1;break;...

为什么编译的时候会出现这个错误warning C4028: formal parameter 1...
有重复声明的函数,如double atof(char s[]),把这个改个名,这个告警不会有了

jquery中的$(function(){...})什么时候执行
getplan(opName);getopname(opName);\/\/ getplan(opName);connect();getFoucs();InitGrid();});F5的时候,页面刷新,重新读取DOM节点完成后,自动执行ready()函数里面的函数体。('ID')只是选中某个元素,比如你的函数第三行: document.getElementById("txtName")。并没有执行函数的含义。

相似回答