比如CString的内容是编号:44 组号:31
我象提取44 转换成INT型怎么办

解决方案 »

  1.   

    CString str;
    int temp = atio(str);注意是多字节编码才可以
      

  2.   

    CString str;
    str.left(你的分隔符索引位置);
    int temp = atoi(str);拆分字符串,尤其是CString,很容易。只要有标志性的分隔符(分隔符,你可以用","," "空格,"||",等等),做循环
    不停的Left(),Mid()操作,肯定能搞定。转换字符串为整型atoi(),浮点型atof(),长整型,atol(),
    数字转换为字符串itoa(),_gcvt(),fcvt(),ecvt(),多的是。
      

  3.   

    //code 
      char str[] = "D: \\ File\\ filename\\ myfile";  
      char delims[] = "\\"; 
      char *result = NULL;   
      result = strtok( str, delims );   
      while( result != NULL )
      {        
       printf( "%s//n", result );   
       result = strtok( NULL, delims ); 
      }       
     
    //for unicode
      TCHAR str[] = _T("D: \\ File\\ filename\\ myfile");  
      TCHAR delims[] = _T("\\");   
      TCHAR *result = NULL;  
      TCHAR *nextstok = NULL;
      result = wcstok_s( str, delims,&nextstok );  
      while( result != NULL )
      {        
       wprintf_s( _T("%s/n"), result ); 
       result = wcstok_s( NULL, delims ,&nextstok);
      }         
      

  4.   

    我的记忆中有个sscanf函数,你可以看看这个函数的介绍
      

  5.   

    如果其中数字是无规律散布的,你需要遍历字符串,找出所有数字,分别开辟空间保存,然后逐个用atoi转换
      

  6.   

    这里有个例子/* sscanf example */
    #include <stdio.h>int main ()
    {
      char sentence []="Rudolph is 12 years old";
      char str [20];
      int i;  sscanf (sentence,"%s %*s %d",str,&i);
      printf ("%s -> %d\n",str,i);
      
      return 0;
    }
      

  7.   


    sscanf只适合输入字符串是规律的,不规律的要慎重使用
      

  8.   

    VS2010 UnicodeCString STemp = _T("1234"); USES_CONVERSION;
    char* Str = T2A(STemp.GetBuffer());//系统宏T2A(W2A)
    STemp.ReleaseBuffer ();
    atoi(Str);