程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++標准庫string處理兩個函數isdigit()和isxdigit()

C++標准庫string處理兩個函數isdigit()和isxdigit()

編輯:C++入門知識

我們經常需要將string類型轉換為int、long、double、float類型,cctype頭文件提供了轉換前的驗證函數isdigit()和isxdigit()。經vs2010實驗:

 main()
{
   std:: strDigit="";
   std:: strXDigit="";
   * szDigit="";
   * szXDigit="";
   std::locale loc("");
    (isdigit(*szDigit))
   {
      std::cout<<szDigit<<"";
   }
    (isdigit(*(strDigit.c_str())))
   {
      std::cout<<strDigit<<"";
   }
    (isxdigit(*szXDigit))
   {
      std::cout<<szXDigit<<"";
   }
    (isxdigit(*(strXDigit.c_str())))
   {
      std::cout<<strXDigit<<"";
   }
    0;
}

程序輸出:

123.35 is digit.

456.123 is digit.

0x56 is hex.

0x57 is hex.

如果不是使用*szDigit、*szXDigit、*(strDigit.c_str())、*(strXDigit.c_str()),而是使用szDigit、szXDigit、strDigit.c_str()、strXDigit.c_str(),則不能編譯成功。

在vc2012中需要引用locale頭文件,用法為

std::locale loc("");

isdigit(*szDigit,loc);

但是要用szDigit可以編譯通過,但是不會得到正確的結果。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved