어떻게 const char *를 나눌 수 있습니까?split const char * in C++
const char에 저장된 날짜 패턴이 있습니다. 그것이 유효한지 아닌지 알고 싶습니다. const char *를 나눌 수 없으므로 어떻게해야합니까?
어떻게 const char *를 나눌 수 있습니까?split const char * in C++
const char에 저장된 날짜 패턴이 있습니다. 그것이 유효한지 아닌지 알고 싶습니다. const char *를 나눌 수 없으므로 어떻게해야합니까?
시스템에있는 경우 또는 아마도 strptime()
을 사용하여 문자 버퍼에서 일/월/년 필드를 구문 분석 할 수 있습니다. 당신은 어려움이있는 경우, 당신은 그들을 밖으로 시도하고 이후 구체적인 질문한다
std::istringstream is("2010/11/26");
int year, month, day;
char c1, c2;
if (is >> year >> c1 >> month >> c2 >> day &&
c1 == '/' && c2 == '/')
{
// numeric date fields in year, month, day...
// sanity checks: e.g. is it really a valid date?
struct tm tm;
tm.tm_sec = tm.tm_min = tm.tm_hour = tm.tm_wday = tm.tm_yday = tm.tm_isdst = 0;
tm.tm_mday = day;
tm.tm_mon = month;
tm.tm_year = year;
time_t t = mktime(&tm);
struct tm* p_tm = localtime(&t);
if (p_tm->tm_mday == day && p->tm_mon == month && p->tm_year == year)
// survived to/from time_t, must be valid (and in range)
do something with the date...
else
handle date-like form but invalid numbers...
}
else
handle invalid parsing error...
: 당신은 또한 람, 다음 숫자 변수에 값을 스트리밍 성병 : : 이제 stringstream에 텍스트를 넣을 수 있습니다.
질문에 세부 정보를 추가해야합니다. 이제는 지나치게 광범위합니다. 일반적으로 boost::regex_match
을 사용하여 주어진 정규 표현식이 주어진 문자 시퀀스 전체와 일치하는지 여부를 판단 할 수 있습니다.
'std :: string'은 옵션입니까? –
질문이 모호합니다. const char *에서 날짜를 읽고 싶습니까? – Aamir
왜'const char *'를 나눌 수 없습니까? 문자열은 수정할 수 없지만 문자열을 추출 할 수 있어야합니다. – templatetypedef