>백엔드 개발 >C++ >C에서 문자열을 Double로 변환하는 방법: `std::istringstream` 및 `std::stod`를 사용한 간단한 가이드

C에서 문자열을 Double로 변환하는 방법: `std::istringstream` 및 `std::stod`를 사용한 간단한 가이드

Linda Hamilton
Linda Hamilton원래의
2024-10-29 13:06:29913검색

How to Convert Strings to Doubles in C  : A Simple Guide Using `std::istringstream` and `std::stod`

C에서 문자열을 Double로 변환

C에서 std::istringstream 및 std::stod 함수를 사용하여 문자열을 double로 변환할 수 있습니다.

<code class="cpp">#include <sstream>

double string_to_double(const std::string& s) {
  std::istringstream iss(s);
  double x;
  if (!(iss >> x)) {
    return 0;  // Return 0 for non-numerical strings
  }
  return x;
}</code>

이 함수의 작동 방식은 다음과 같습니다.

  1. 입력 문자열 s에서 std::istringstream 개체 iss를 만듭니다.
  2. >> iss에서 double 값을 추출하는 연산자입니다.
  3. 추출에 성공하면 double 값을 반환합니다.
  4. 추출에 실패하면(예: 문자열이 숫자가 아닌 경우) 0을 반환합니다.

이 함수는 허용되는 모든 문자열 표현인 0과 숫자가 아닌 문자열을 완전히 구별할 수 없다는 점에 유의하세요. 예를 들어 다음 문자열은 모두 0으로 간주됩니다.

"0"
"0."
"0.0"

다음은 string_to_double 함수의 사용법을 보여주는 몇 가지 테스트 사례입니다.

<code class="cpp">#include <cassert>

int main() {
  assert(0.5 == string_to_double("0.5"));
  assert(0.5 == string_to_double("0.5 "));
  assert(0.5 == string_to_double(" 0.5"));
  assert(0.5 == string_to_double("0.5a"));

  assert(0 == string_to_double("0"));
  assert(0 == string_to_double("0."));
  assert(0 == string_to_double("0.0"));
  assert(0 == string_to_double("foobar"));

  return 0;
}</code>

위 내용은 C에서 문자열을 Double로 변환하는 방법: `std::istringstream` 및 `std::stod`를 사용한 간단한 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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