C++ 判断字符串是否全是数字

  在实际的工作中,需要提取程序中的字符串信息,但是程序中经常将一些数字当做字符串来进行处理,例如表盘的刻度信息,这时候就需要判断字符串是否全为数字,来进行真正意义上的字符串提取。下面介绍了判断字符串是否全为数字的方法,仅供参考。

  方法一:判断字符的ASCII范围(数字的范围为48~57)

  

 1 #include <iostream>
 2 using namespace std;  
 3 
 4 bool AllisNum(string str); 
 5  
 6 int main( void )  
 7 {  
 8 
 9     string str1 = "wolaiqiao23";  
10     string str2 = "1990";  
11 
12     if (AllisNum(str1))
13     {
14         cout<<"str1 is a num"<<endl;  
15     }
16     else
17     {
18         cout<<"str1 is not a num"<<endl;  
19     }
20 
21     if (AllisNum(str2))
22     {
23         cout<<"str2 is a num"<<endl;  
24     }
25     else
26     {
27         cout<<"str2 is not a num"<<endl;  
28     }
29 
30     cin.get();
31     return 0;  
32 }  
33  
34 bool AllisNum(string str)  
35 {  
36     for (int i = 0; i < str.size(); i++)
37     {
38         int tmp = (int)str[i];
39         if (tmp >= 48 && tmp <= 57)
40         {
41             continue;
42         }
43         else
44         {
45             return false;
46         }
47     } 
48     return true;
49 }  

  方法二:使用C++提供的stringstream对象 

 1 #include <iostream>
 2 #include <sstream>  
 3 using namespace std;  
 4 
 5 bool isNum(string str);  
 6 
 7 int main( void )  
 8 {
 9     string str1 = "wolaiqiao23r";  
10     string str2 = "1990";  
11     if(isNum(str1))  
12     {  
13         cout << "str1 is a num" << endl;  
14     }  
15     else
16     {  
17         cout << "str1 is not a num" << endl;  
18 
19     }  
20     if(isNum(str2))  
21     {  
22         cout<<"str2 is a num"<<endl;  
23     }  
24     else
25     {  
26         cout<<"str2 is not a num"<<endl;  
27 
28     }  
29 
30     cin.get();
31     return 0;  
32 }  
33 
34 bool isNum(string str)  
35 {  
36     stringstream sin(str);  
37     double d;  
38     char c;  
39     if(!(sin >> d))  
40     {
41         return false;
42     }
43     if (sin >> c) 
44     {
45         return false;
46     }  
47     return true;  
48 } 

  运行结果

  

 

posted on 2016-11-18 13:16  我来乔23  阅读(56365)  评论(1编辑  收藏  举报

导航