문자열을 검증해야합니다. 문자열의 형식은 "V02 : 01 : 02 : 03 : 04"입니다. 내가
2) 첫 번째 문자를 제공 정확한 길이를 확인 할
1) 인 'V'
3) 다른 모든 문자는이 개 편지 자리하고 콜론과에서 분리 : 나는을하려고하고 무엇
올바른 위치.
4) 공백 탭이 없습니다. et.c
4) 더 이상 유효성 검사가 필요하지 않습니다.숫자와 콜론으로 문자열 검증
내가 지금 무슨 짓까지
1) 기능은 쉽게 렌을 확인하고 처음으로 알파 공간을 포함하지 않는 후 주먹 문자 그 이후의 문자를 확인할 수 없습니다. 그러나 콜론 위치를 확인하는 방법과 모든 콜론 다음에 2 글자 글자를 확인하는 방법에 대해 조금 꼼짝도하지 않습니다.
다음은 나의 시도입니다.
int firmwareVerLen = 15;
const std::string input = "V02:01:02:03:04"; // this is the format string user will input with changes only in digits.
bool validateInput(const std::string& input)
{
typedef std::string::size_type stringSize;
bool result = true ;
if(firmwareVerLen != (int)input.size())
{
std::cout <<" len failed" << std::endl;
result = false ;
}
if(true == result)
{
if(input.find_first_of('V', 0))
{
std::cout <<" The First Character is not 'V' " << std::endl;
result = false ;
}
}
if(true == result)
{
for(stringSize i = 1 ; i!= input.size(); ++ i)
{
if(isspace(input[i]))
{
result = false;
break;
}
if(isalpha(input[i]))
{
cout<<" alpha found ";
result = false;
break;
}
//how to check further that characters are digits and are correctly separated by colon
}
}
return result;
}
솔직히 말해서, 나는 문자열을 반복하여 현재의 유효성 목록과 비교하여 각 문자를 검사 할 것입니다. 정규식? – chris
? 'V ([0-9] {2} :) {5}'나는 생각합니다. – hmjd
@hmjd, 와우, 지금 당신이 그것을 언급 ... – chris