C에서 숫자만 포함된 문자열 확인
문자열이나 문자*에 숫자만 포함되어 있는지 확인하는 것은 프로그래밍에서 일반적인 작업입니다. 이 기사에서는 두 가지 효율적인 접근 방식을 살펴봅니다.
1. find_first_not_of
사용 이 방법은 문자열을 반복하여 숫자가 아닌 첫 번째 문자를 검색합니다. 아무 것도 발견되지 않으면(find_first_not_of("0123456789")가 std::string::npos를 반환함) 문자열은 숫자 전용으로 간주됩니다:
<code class="cpp">bool is_digits(const std::string &str) { return str.find_first_not_of("0123456789") == std::string::npos; }</code>
2. std::all_of 사용(C 11 이상)
이 방법은 조건자를 활용하여 문자열의 각 문자를 확인합니다. 이 경우 조건자는 ::isdigit이며 숫자 문자에 대해 true를 반환합니다.
<code class="cpp">bool is_digits(const std::string &str) { return std::all_of(str.begin(), str.end(), ::isdigit); // C++11 }</code>
함수는 문자열과 문자* 모두에 적용됩니까?
예, 이 함수는 약간의 수정을 거쳐 std::string 및 char* 모두에 사용할 수 있습니다. char*의 경우 std::string 생성자를 사용하여 char*를 std::string:
<code class="cpp">bool is_digits(const char *str) { std::string str_copy(str); return is_digits(str_copy); }</code>으로 변환할 수 있습니다.
위 내용은 C에서 문자열 또는 char*에 숫자만 포함되어 있는지 어떻게 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!