【经典算法】:判断一个字符串是不是标志符的算法实现

废话不说,直接上代码;

//// author:seen
//// 2015-09-18
//// 判断一个字符串是否是标识符
//// 标识符的标志 第一个为字符或者下划线,其余的都为数字,字符或者下划线
#include <iostream>
#include <string>
using namespace std;
int In(char temp){          //是否在其字符集里面
    if((temp>='a' && temp<='z') || (temp>='A' && temp<='Z') ||temp=='_' ||(temp>='0' &&temp<='9'))
    return 1;
    return 0;
}
void find(string s){        //判断此字符串是不是标识符
    if((s[0]>='a' && s[0]<='z') || (s[0]>='A' && s[0]<='Z')||s[0]=='_'){
        for(int i=2;i<s.length();i++){
            if(In(s[i])==0){
                cout<<"该字符不是标识符"<<" "<<i+1<<endl;
                return ;
            }
        }
        cout<<"该字符是标识符"<<endl;
    }
    else cout<<"该字符不是标识符"<<" "<<1<<endl;
}
int main()
{
    string s;
    while(cin>>s&& s!="cin"){  //输入cin结束
    find(s);
    }   return 0;
}

输出格式:

是否是标识符,如果不是标识符,会输出第一个不满足标识符规则的字符的位置

截图:
【经典算法】:判断一个字符串是不是标志符的算法实现_第1张图片

你可能感兴趣的:(算法,代码,namespace,标识符)