字符串的合法性 正则表达式
怎么判断一个字符串的合法性,规定这个字符串除了数字,字母和_下划线不能包含其他任何符号
不用正则表达式 C++ 字符串 正则表达式 合法性
[解决办法]
遍历一边,循环中判断每个字符的ascii码值。
[解决办法]
char string[] = "...";
int is_valid = 1;
for (int i = 0; i < strlen(string); i++)
{
if (!(isdigit(string[i])
[解决办法]
isalpha(string[i])
[解决办法]
== '_'))
{
is_valid = 0;
break;
}
}
return is_valid;
[解决办法]
你可以用一个循环,只要碰到不是数字,字母下划线就跳出。
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
string strtest;
cin>>strtest;
const char * str = strtest.c_str();
bool iserror = false;
for(int i = 0;i < strlen(str);i++)
{
if( (str[i]>'Z'
[解决办法]
str[i]<'A')&&
(str[i]>'z'
[解决办法]
str[i]<'a')&&
(str[i]>'9'
[解决办法]
str[i]<'0')&&
(str[i]!='_'))
{
iserror = true;
break;
}
}
if(iserror)
{
cout<<"the string is errror!"<<endl;
return -1;
}
cout<<"the string is true!"<<endl;
return 0;
}