我的函数如下
SetInfoMation(char *RSsex)//参数为char指针
{
  long RTXsex = (long)*RSsex;//这是我的转换,不过得到的值为asci码,
                               比如RSsex给0,得到的是48,而我想得到0值...
}用atol转过去也不行,,
请问有谁接触过char到long转换呢??
感谢交流交流....

解决方案 »

  1.   


    char *RSsex这是一个字符指针,这里是一个字符串的首地址。
    改为下面就可以了:long RTXsex = atol( RSsex );
      

  2.   

    SetInfoMation(char *RSsex)//参数为char指针 

      long RTXsex = atoi(RSsex);
    } 这样为什么不行呢?
      

  3.   

    我用过 long RTXsex = atol(RSsex);
    转过去的RTXsex是一个-8978765455;明显不对嘛.
      

  4.   

    SetInfoMation(char *RSsex)//参数为char指针 

      long RTXsex = *RSsex-48;

      

  5.   

    是不是LZ要转换的正整数很大 ?用unsigned long试试或者用__int64对应的转换函数是_atoi64
      

  6.   

    转换过后是否已经超过long的范围了!
      

  7.   

    你是要转一个字符串还是一个字符?字符串用atol没错的,字符的话首先没必要传递一个字符串指针到函数里,引起误解;其次数字字符减去'0'就是其值。不要把字符串指针和字符本身搞混。
      

  8.   

    没错的,注意自己的使用是否正确了,呵呵.
    比如 char szfloat[100];
     strcpy(sz,"1.2345");
    Long temp=atof(szfoat);