• 第2关:文本串里单词、数字和符号的识别


    ps

    注意tab键特判

    任务描述

    编写一个lex描述文件,识别出指定文本串里的单词、数字和符号(空格不作处理)。

    编程要求

    完成上述编程任务,将C语言源程序复制粘贴到右侧代码编辑器,点击“评测”按钮,运行程序,系统会自动进行结果对比。

    测试说明

    平台会对你编写的代码进行测试:

    测试输入:

    using namespace std;  
    int main()  
    {  
        int year = 2022;  
        cout << "hello" << endl;  
        return 0;  
    }  
    

    预期输出:

    using 单词  
    namespace 单词  
    std 单词  
    ; 符号  
    int 单词  
    main 单词  
    ( 符号  
    ) 符号  
    { 符号  
    int 单词  
    year 单词  
    = 符号  
    2022 数字  
    ; 符号  
    cout 单词  
    < 符号  
    < 符号  
    " 符号  
    hello 单词  
    " 符号  
    < 符号  
    < 符号  
    endl 单词  
    ; 符号  
    return 单词  
    0 数字  
    ; 符号  
    } 符号  
    

    code

    //#include <bits/stdc++.h>
    #include<stdio.h>
    #include<string.h>
    #define   maxn 10000
    
    char str[maxn];
    void fun(char str[]);
    int main() {
    	int i = 0;
    	while ((str[i] = getchar()) != EOF) {
    		i++;
    	}
    	str[i] = '\0';
    	fun(str);
    	return 0;
    
    }
    void fun(char str[]) {
    	for (int j = 0; str[j] != '\0'; j++) {
    	
    	
    		if (str[j] >= '0' && str[j] <= '9') {
    			//TODO数字
    			while (str[j] >= '0' && str[j] <= '9') {
    				putchar(str[j]);
    				j++;
    			}
    			j--;
    			printf(" 数字\n");
    			continue;
    		} 
    		if ((str[j] >= 'a' && str[j] <= 'z') || (str[j] >= 'A' && str[j] <= 'Z')) {
    			//TODO字母
    			while ((str[j] >= 'a' && str[j] <= 'z') || (str[j] >= 'A' && str[j] <= 'Z')) {
    				putchar(str[j]);
    				j++;
    			}
    			j--;
    			printf(" 单词\n");
    			continue;
    		} 
    		if (str[j] == ' '||str[j] == '\n'||str[j]=='	') {
    			continue;
    		} 
    		
    			//符号
    			putchar(str[j]);
    			printf(" 符号\n");
    			
    		
    
    
    	}
    
    }
    
  • 相关阅读:
    剑指 Offer 30. 包含min函数的栈
    剑指 Offer 35. 复杂链表的复制
    剑指 Offer 18. 删除链表的节点
    剑指 Offer 24. 反转链表
    Jmeter
    Jmeter
    Linux搭建Jenkins
    [基金项目] 青年基金写作的历程与经验(2)
    [基金项目] 青年基金写作的历程与经验(1)
    浅析mysql存储过程
  • 原文地址:https://www.cnblogs.com/jeseesmith/p/16329711.html
Copyright © 2020-2023  润新知