Creo二次开发--字符串类操作函数

 由于Toolkit函数是采用C原因进行开发,里面常用的字符串类函数基本和C语言的字符串类操作函数功能保持一致;具体功能需要查询C语言手册,不在本内容的讨论范围之内。

  1. 1、字符串转换函数

    ProStringToWstring--用来将标准ASCII字符串转化为宽字符

    ProWstringToString--用来将宽字符转化为标准ASCII字符

    ProStringToLegacystring--将Unicode的多字节字符串转换为传统的编码方式

    ProWstringToLegacystring--将Unicode的宽字符串转换为传统的编码方式

    ProLegacystringToString--将传统编码方式的多字节字符串转换为Unicode的多字节字符串

    ProLegacystringToWstring--将传统编码方式的多字节字符串转换为Unicode的宽字符串

  2. 2、字符串转换自定义函数(适用于WCHAR未设定为内定字符类型)

  3. //wchar类型转换为CString类型输出

     wcharToCString(wchar_t* source,CString& strOut) 

    {  

         char c[MAX_PATH];  

        ProBoolean was_used;  

        ProError status =

  4. ProWstringToLegacystring(c,260,source,PRO_VALUE_UNUSED,'^',&was_used);  

         strOut.Format("%s",c);

     }

    //将字符串类型转换为wchar类型 

    CStringTowchar(CString strSource,wchar_t* pout)

     {  

         ProLegacystringToWstring(pout,260,strSource.GetBuffer(strSource.GetLength()),

           strSource.GetLength()); 

    }

    //字符串转换为double类型

    double  CStringToDouble(CString str)

     {  

          double d=atof(str.GetBuffer(str.GetLength())); 

          return d; 

    }

    //字符串转换为int类型 int  CStringToInt(CString str)

     {  

           int i=atoi(str.GetBuffer(str.GetLength()));  return i;

     }

  5. 3、字符串比较函数

  6. //返回值为0表明两个字符串相同

    int ProUtilStrcmp(char *s,char *t)//比较char*字符串

    {

    int i = 0;

    while( toupper(s[i]) == toupper(t[i]))

    {

    if( s[i++] == '\0' )

    return(0);

    }

    return(s[i] - t[i]);

    }

    int ProUtilWstrCmp(wchar_t *ws1,wchar_t *ws2)//比较wchar字符串

    {

    int len1, len2;

    char* us1;

    char* us2;

    int result;

    ProWstringLengthGet (ws1, &len1);

    ProWstringLengthGet (ws2, &len2);

     /* Allow extra length for wchar_t -> char conversion */

    us1 = (char*) calloc ((4*len1+1), sizeof (char));

    us2 = (char*) calloc ((4*len2+1), sizeof (char));

    ProWstringToString (us1, ws1);

    ProWstringToString (us2, ws2);

    result = ProUtilStrcmp (us1, us2);

    free (us1);

    free (us2);

    return (result);

    }

  7. 4、杂类转换函数

    (1)CString转Int

    CString szTemp="123456";

    int nTemp=atoi((LPTSTR)(LPCTSTR)szTemp);

    (2)CString转Double

    double  dTemp=atof((LPTSTR)(LPCTSTR)szTemp);

    (3)char reBuff[10] = {0};

    RegQueryValueEx(hKey,"Number",0,&dwtype(BYTE*)reBuff,&sizeBuff) ;获取键值后,得到的数据需要转换为10进制,需要这样操作。

    int count=(long)*(short *)reBuff;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值