⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 realint.h

📁 一个简单的词法分析程序。是编译原理的部分课程设计。因为时间有限。未能完成全部。如果有朋友改了代码或添加了功能使代码更加完善。请与我联系:ningmeng_studio@163.com谢谢. 做的不是
💻 H
字号:
/*=============================================
**             2005-8-22					**
**			  识别实常数	 				**
**			 lizhu zhang					**
=============================================*/
/*=============================================
**函数用能:判断该字符串是否为实常数.
**参数说明:[in]pString:接受传入的字符串
**返回值  : 成功返回0,错误返回i;不是整常数但
**			不错误返回1;
**===========================================*/
int FRealInt(const char *pString)
{
	char word[2048];
	strcpy(word,pString);
	//定义标志,记录"."和"+ ","-"出现的次数
	int flagDot(0),flagPlusSub(0);
	//查看开始是否为符号或数字
	if(word[0]=='+'||word[0]=='-'||(word[0]>='1'&&word[0]<='9'))
	{
		int i = 1;
		while(word[i]!='\0'&&(word[i]>='0'&&word[i]<='9'))
			i++;
		if(word[i] == '.'||word[i] == 'e')
		{
			if(word[i] != 'e')
				i++;
			//识别小数点后面的部分
			while(word[i]!='\0'&&(word[i]>='0'&&word[i]<='9'))
				i++;
			if(word[i] == '\0')
				//识别成功
				return 0;
			else
			{
				i ++;
				if(word[i] != 'e')
					//识别错误
					return i+1;
				else
					if(word[i+1] == '+' ||word[i+1] =='-' && flagPlusSub == 0)
					{
						//跳过e和+,-符号
						i += 2;
						while(word[i]!='\0'&&(word[i]>='0'&&word[i]<='9'))
							i++;
						if(word[i]!='\0')
							return i+1;
						else
							return 0;
					}
					else
						if(word[i+1]>='0'&&word[i+1]<='9')
						{
							i += 2;
							while(word[i]!='\0'&&(word[i]>='0'&&word[i]<='9'))
								i++;
							if(word[i]!='\0')
								return i+1;
							else
								return 0;
						}
						else
							return i+2;
			}

		}
		else
			//错误,返回错误位置
			return i+1;
	}
	else
		return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -