Chinaunix首页 | 论坛 | 博客
  • 博客访问: 263230
  • 博文数量: 71
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 920
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-16 13:07
个人简介

我喜欢蓝天,也喜欢雨天。

文章分类

全部博文(71)

文章存档

2014年(14)

2013年(57)

分类: C/C++

2013-12-10 11:22:37

下面几个函数将字符串转换为长整型
函数原型:
long atol(
   const char *str 
);

long _wtol(
   const wchar_t *str 
);
需要包含的头文件:#include 
函数参数:str:将要转换的字符串
函数返回值:成功返回转换后的数值,失败返回0L。对于正整数的溢出,返回LONG_MAX,对于负整数值得溢出,返回LONG_MIN。在所有超出范围的情况下,errno设置为ERANGE.
_wtol()与atol()的区别是,它转换的是宽字符字符串。
atol()示例程序:
#include "stdafx.h"
#include 
#include 


int _tmain(int argc, _TCHAR* argv[])
{
 char    *str = NULL;
 long    value = 0;


 // An example of the atol function
 // with leading and trailing white spaces.
 str = "  1234";
 value = atol( str );
 printf( "Function: atol( \"%s\" ) = %d\n", str, value );
 
 // An example of the atol function
 // with an  negative.
 str = "-1024";
 value = atol( str );
 printf( "Function: atol( \"%s\" ) = %d\n", str, value );


 // Another example of the atol function 
 // with an arbitrary decimal point.
 str = "3452012.88";
 value = atol( str );
 printf( "Function: atol( \"%s\" ) = %d\n", str, value );


 // Another example of the atol function
 // with an overflow condition occurring.
 str = "123485479512586";
 value = atol( str );
 printf( "Function: atol( \"%s\" ) = %d\n", str, value );
 if (errno == ERANGE)
 {
 printf("Overflow condition occurred.\n");
 }

 getchar();
 return 0;
} 
运行结果:
 
_wtol示例程序:
#include "stdafx.h"  
#include  
#include  
int _tmain(int argc, _TCHAR* argv[]) 
{ 
    wchar_t *str = NULL; 
    long    value = 0; 
    // An example of the atol function 
    // with leading and trailing white spaces. 
    str = L"  -568 "; 
    value = _wtol( str ); 
    printf( "Function: _wtol( \"%ws\" ) = %d\n", str, value ); 
    // Another example of the atol function 
    // with an arbitrary decimal point. 
    str = L"85462.64"; 
    value = _wtol( str ); 
    printf( "Function: _wtol( \"%ws\" ) = %d\n", str, value ); 
    // Another example of the atol function 
    // with an overflow condition occurring. 
    str = L"56214895756213"; 
    value = _wtol( str ); 
    printf( "Function: _wtol( \"%ws\" ) = %d\n", str, value ); 
    if (errno == ERANGE) 
    { 
        printf("Overflow condition occurred.\n"); 
    } 
    getchar(); 
    return 0; 
} 

运行结果:
 

另外,字符串转int型介绍:http://blog.chinaunix.net/uid-29121609-id-4031083.html
字符串转换为double型:http://blog.chinaunix.net/uid-29121609-id-4031108.html

                                   
阅读(4164) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~