c++读入两个字符串,再把他们连接起来,,生成一个新字符(不用strcat函数)串并将其内容存入文件string.h 5
2017-12-08 · 知道合伙人互联网行家
这是一个简单的实例,实际的词法分析器状态转换图也不太复杂。
状态转换图易于编程实现。图中每一个状态对应一段程序,遇到分支可使用if语句实现,如果分支较多,可采用case语句,遇到回路可采用while语句。在编写状态转换图对应程序时,将会用到下面的变量和函数。
1、 Character
全局字符变量,用来存放最新读入的字符。
2、 Token
字符数组,用来存放已读入的字符序列。
3、 Getchar
读入一个字符的函数,从输入字符串中读入一个字符到character中。
4、 Getnbc
读入非空白字符的函数,检查变量character中的字符是否为空白字符,若是,则调用getchar读入下一个字符,直到character中的字符是非空白字符为止。
5、 Concat
连接字符串的函数,把character中的字符连接到token数组的末尾。例如,token的值为”abc”,character的值为’d’,调用concat函数后,token的值为abcd。
6、 Letter
判断字母的函数,若character中的字符是字母,返回true值,否则返回false值。
7、 Digit
判断数字的函数,若character中的字符是数字,返回true值,否则返回false值。
8、 Retract
回退字符的函数,将刚读入的character中的字符回退到输入字符串中,并把character的值置为空白。
9、 Reserve
处理保留字的函数,对存放在token中的字符串查表六字表,若查到,则表示该字符串是一个保留字,则返回该保留字的类型编码,否则返回0.
10、symbol 处理标识符的函数。对token中的字符串查保留字表,若查到,则返回它在符号表中的位置编号,
11、constant
常数存入常数表的函数,将token中的数字串转换成标准的二进制值,存入常数表中,返回它在表中的位置编号。
12、return
返回二元式的函数,其中,num为单词符号的类型编码,val是token中的字符串在符号表中的位置编号,或者是它在常数表中的位置编号,或者无定义。
13、error
出错处理的函数,处理出现的词法错误。有一类词法错误可以在词法分析时发现,如出现字母表以外的非法字符、不合规则的常数、标识符的前缀为保留字等。但还有一类词法错误,例如,把if写成fi,词法分析会将fi当作标识符处理,le ngth中间多了一个空格,词法分析会将le和ngth当作两个标识符处理。这类词法错误往往要推迟到语法分析时才能发现,不属于函数处理的范畴。
#include <bits/stdc++.h>
using namespace std;
string a,b;
int main() {
cin >>a >>b;
freopen("string.h","w",stdout);
cout <<a <<b;
}