C에서 숫자 문자열 감지
문자열이 숫자 값을 나타내는지 여부를 확인하는 것은 다양한 프로그래밍 시나리오에서 보편적인 요구 사항일 수 있습니다. 예를 들어, 데이터 파일 구문 분석의 맥락에서 숫자 라인을 식별하는 것이 중요합니다. 다양한 방법이 존재하지만 이 기사에서는 C 영역에서 이 작업을 수행하는 두 가지 효율적인 접근 방식에 중점을 둡니다.
반복 접근 방식
가장 간단하고 간단한 방법은 반복을 포함합니다. 문자열의 각 문자를 통해. 숫자가 아닌 문자가 있으면 문자열은 숫자가 아닌 것으로 간주됩니다.
bool is_number(const std::string& s) { for (char c : s) { if (!std::isdigit(c)) { return false; } } return true; }
C 11의 find_if
현대 C 지지자들은 간결한 구현을 위해 find_if 활용을 선호할 수 있습니다. . 이 접근 방식은 람다 표현식을 활용하여 숫자가 아닌 첫 번째 문자를 검색하고, 발견되면 false를 반환하고, 아무것도 없으면 true를 반환합니다.
bool is_number(const std::string& s) { return std::find_if(s.begin(), s.end(), [](unsigned char c) { return !std::isdigit(c); }) == s.end(); }
주의 사항
중요합니다. 두 기술 모두 양의 정수만 가정한다는 점에 유의하세요. 음수 또는 분수를 처리하려면 Boost 또는 C 20의
위 내용은 C에서 숫자 문자열을 효율적으로 감지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!