关于字符串的用法和转换补遗:

原创 2003年11月06日 00:29:00

1:使用CString,要包含文件afx.h,比如在Win32 Console ApplicationAlt+F7选择Use MFC in a Static Liberary,然后再添加#include<afx.h>就可以使用CString了。

2WCHAR ch = L’’;CHAR ch = ’’;的区别是第一种使用UNICODE编码,第二种方式一般不经常用到,比如:

         WCHAR strA [ 2 ] = { L'' , 0 } ;//打开VCOptions菜单,选中Debug选项卡中的Display unicode strings后,可以看到strA的值。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

         WCHAR strB [ 2 ] = { '' , 0 } ;

         CString strC ;

         strC+ = ( ( char * ) strB ) [ 1 ] ;

         strC+ = ( ( char * ) strB ) [ 0 ] ;//strC==”

3CStringAllocSysString ( )成员函数;可以方便的把一个字符串转换成UNICODE形式。记得使用完该UNICODE字符串后要调用::SysFreeString()函数释放字符串。

4: CString::AllocSysString ( )或者::SysAllocString得到的字符串并不是普通的UNICODE字符串,它之前的四个字节会存放申请的字符串的长度:

         CString strD = ”asdf”;

         BSTR strD = strC.AllocSysString( ) ;

         long i =* ( ( long * ) strD – 1 ) ; // i == 8;一个UNICDE字符的长度是2字节,所以strD的长度为8个字节。

4UTF-8码转换为一般的字符串:

#include " Windows.h "

 

int main(void)

{

         char str [ 256 ] = {( char )0xE4, ( char ) 0xBD, ( char ) 0xA0, ( char ) 0xE5 ,

                  ( char)0xA5 ,(char)0xBD, (char)0x61, (char)0x62 ,(char)0x63,(char)0} ;  //一段UTF-8编码

         WCHAR* strA;

         int i= MultiByteToWideChar ( CP_UTF8 , 0 ,(char*) str ,-1 ,NULL,0);

         strA = new WCHAR[i];

         MultiByteToWideChar ( CP_UTF8 , 0 ,( char * ) str, -1, strA , i );

         i= WideCharToMultiByte(CP_ACP,0,strA,-1,NULL,0,NULL,NULL);

         char *strB=new char[i];

         WideCharToMultiByte (CP_ACP,0,strA,-1,strB,i,NULL,NULL);

//strB即为所求

         delete []strA;

         delete []strB;

         return 0;

}

5:在转换方面_bstr_t是最最灵活的,他提供了UNICODE到一般字符串的直接转换:

#include <comdef.h>

         _bstr_t strA;

         char *strB="中国人";

         strA=strB;

         WCHAR *strC=strA;

         long i =* ( ( long * ) strC - 1 ) ;// i 亦是字符串的字节长度

         char *strD=strA;

         return 0;

 

 

字符串和数字之间的相互转换总结

最近刷题有用到字符串和整形数字之间的转化,特地总结一下。 int本身也要用一串字符表示,前后没有双引号,告诉编译器把它当作一个数解释。缺省情况下,是当成10进制(dec)来解释,如果想用8进制,...
  • JIEJINQUANIL
  • JIEJINQUANIL
  • 2016年08月18日 23:30
  • 2415

基本类型包装类字符串之间的相互转换

在java开发过程中,经常用会用基本类型和包装类之间的相互转换,使用包装类,使基本类型具有了对象的特性,更方便操作;基本类型和字符串之间的转换也必不可少。...
  • stellar_liu
  • stellar_liu
  • 2016年09月16日 11:54
  • 1426

数字转化成字符串左边自动补零方法整理

Java 中给数字左边补0 (1)方法一 import java.text.NumberFormat; public class NumberFormatTest { public sta...
  • dongzhouzhou
  • dongzhouzhou
  • 2013年03月12日 14:25
  • 23594

Hive中对科学计数法表示的字符串的转换

Hive中int , float , double这些数值类型在存储大额度数字时,在前端展现上总是使用科学计数法来表示,例如: hive> select pow(10,8) from dua...
  • zreodown
  • zreodown
  • 2013年11月12日 18:32
  • 6501

char字符与wchar_t字符的相互转换,以及wchar_t字符串的常用用法

今天在做word报表的自动生成时,在读取数据文档的数据插入表格的时候,因为wordSelection.TypeText(LPCTSTR * text),需要传入的是LPCTSTR型的字符串(查看定义可...
  • monkey_D_feilong
  • monkey_D_feilong
  • 2016年05月31日 21:24
  • 745

hive对科学计数法字符串的转换

Hive中int , float , double这些数值类型在存储大额度数字时,在前端展现上总是使用科学计数法来表示,例如: hive> select pow(10,8) from dual; ...
  • fengyuanshen
  • fengyuanshen
  • 2015年11月17日 10:38
  • 3615

Foundation框架(4)——NSString的常见操作:大小写转换、字符串比较、搜索、截取、构建路径、拓展名等用法

// // main.m // Foundation4-NSString的其他用法 // // Created by Mac on 15-1-18. // Copyright (c)...
  • liu537192
  • liu537192
  • 2015年01月18日 23:15
  • 419

double数据转换成char字符串的函数——dtostrf()用法

Atmel Studio 6.2集成开发环境编写单片机程序。在项目中需要把double型数据转换成char型字符串。本想自己写数据转换程序,写之前先上网看看前人们有什么经验,一番搜索发现AtmelSt...
  • electrocrazy
  • electrocrazy
  • 2016年10月14日 16:48
  • 3359

递归法实现整型数到字符串的转换

用递归法实现整型数到字符串的转换,例如:输入1234,转换后得到“1234”,输入整数的范围不超过5位。   实现方法一: #include #define M 6 void in...
  • tianmo2010
  • tianmo2010
  • 2011年10月05日 17:06
  • 1050

黑马程序员——OC语言日志——NSString字符串的截取、替换,数据类型转换等一些用法

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 今天来总结一下NSString一些常见的用法。 1、字符串的截取 从xx位置开始,到最后结束,包...
  • hongjitong2
  • hongjitong2
  • 2015年10月25日 15:28
  • 6303
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于字符串的用法和转换补遗:
举报原因:
原因补充:

(最多只允许输入30个字)