字符串处理-提取变量名

问题描述:输入C语言变量定义语句,符合C语言语法要求,变量间可以有多个空格,包含数组,指针定义。

输入: int x12, y=1,     num_stu=89, a[30], *p;

输出:a,num_stu,p,x12,y

 

思路:关键是确定当前所处的状态

state1: 处于变量名中

state2: 处于‘=’或‘[’ 到‘,’之间

state3: 处于‘,’到下一变量之间

处理每个字符前先确定当前的状态,再按状态来进行相应的处理。每次遇到空格或‘*' 可以直接跳过不影响结果。

 

#include 
#include 
#include 

using namespace std;


int main(){
    string definition= "int x12,  y=1, num_stu=89, a[30], *p;";
    int flag=0;
    //预处理,去掉开头的变量类型和空格
    for(int i =0;i vSet;
    string temp="";
    for(int i=0;i

 

你可能感兴趣的:(算法)