>백엔드 개발 >C++ >C에서 문자열 또는 char*에 숫자만 포함되어 있는지 어떻게 확인할 수 있습니까?

C에서 문자열 또는 char*에 숫자만 포함되어 있는지 어떻게 확인할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-03 04:18:30715검색

How Can I Verify if a String or char* Contains Only Digits in C  ?

C에서 숫자만 포함된 문자열 확인

문자열이나 문자*에 숫자만 포함되어 있는지 확인하는 것은 프로그래밍에서 일반적인 작업입니다. 이 기사에서는 두 가지 효율적인 접근 방식을 살펴봅니다.

1. find_first_not_of

사용 이 방법은 문자열을 반복하여 숫자가 아닌 첫 번째 문자를 검색합니다. 아무 것도 발견되지 않으면(find_first_not_of("0123456789")가 std::string::npos를 반환함) 문자열은 숫자 전용으로 간주됩니다:

<code class="cpp">bool is_digits(const std::string &amp;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 &amp;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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.