将有分隔符的字符串(string/CString)转化为int

来源:互联网 发布:数据的离散程度用描述 编辑:程序博客网 时间:2024/05/01 08:44

例如:字符串为如下所示,是带有某些分隔符的如‘-’。下面的情况是需要将其转化为唯一的int值,采用偏移的方式

CString     转化后的 int

100            100
100-10        100<<8 +10

100-10-2      ((100<<8 + 10)<<8) + 2

代码如下:

#include <string>using namespace std;int fun(const char *str){    int ret = 0, num = 0;    for(int i = 0; str[i]; ++i)    {        if(str[i] == '-')        {            ret = (ret << 8) + num;            num = 0;        }        else        {            num = num * 10 + str[i] - '0';        }    }    ret = (ret << 8) + num;    return ret;}int main(int argc, char* argv[]){      string str = "100-7-24"; //6555416    string str1 = "134-25"; //34329    string str2 = "100";    int a = fun(str.c_str());    int b = fun(str1.c_str());    int c = fun(str2.c_str());    return 0;}
如果字符串是 CString的 

那么可以使用 :

const char *str = strTest.GetBuffer(); 

使用完以后 记得使用:

       strTest.ReleaseBuffer(); 释放


原创粉丝点击