vc字符串与字符串指针的操作

在vc中字符串分为两种,一种是宽字符,一种是窄字符。编码分别对应unicode和ansi。所以在开发当中要注意这两种字符的相互转换。下面是vc中常用的字符串指针。

步骤/方法

  • 01

    LPCWSTR 对应 const wchar_t* LPCSTR 对应 const char* LPWSTR 对应 wchar_t* LPSTR 对应 char* mfc自带CString类,一般可以实现字符串指针想字符串中进行转换。但是转换后会自动变成unicode格式。具体转换为 CString str=(CString)各种字符串指针;

  • 02

    由于CString字符串是宽字符的所以我们算字符长度的时候分为两种,一种是按照宽字符算,一种是按照窄字符算。 宽字符: str.GetLength(); 窄字符: (str.GetLength()+1)*sizeof(wchar_t); 下面是声明一个动态数组 int wlen=GetLength(); wchar_t* bff=new wchar_t[wlen]; char* abff=new char[len]; 下面是将CString的字符串转换成指针 宽字符 wcscpy(bff,arg.GetBuffer()); 窄字符 char *buf; CString str= L"test "; buf = (LPSTR)(LPCTSTR)str; 指针转换成数组 char str[256]; strcpy(str, lpstr); delete[] lpstr;//用完要释放空间

  • 03

    还可以这样表示 char* str="sample"; int len = strlen(str)+1; char copystr[256]; memcpy(copystr,str,len); 宽窄字符的相互转换就需要用到两个函数,一个是MultiByteToWideChar(窄转宽),一个是WideCharToMultiByte (宽转窄)下面是简单的实例 窄转宽: DWORD dwMinSize; dwMinSize=::MultiByteToWideChar(CP_ACP,0,lpstr,-1,NULL,0); //获取转换后字符的长度。 LPWSTR lpwStr=new WCHAR[dwMinSize];//声明动态数组 ::MultiByteToWideChar(CP_ACP,0,lpstr,-1,lpwStr,dwMinSize);//转换

  • 04

    宽转窄:(同理) DWORD dwNum; dwNum= WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,NULL,0,NULL,FALSE); LPSTR psText = new char[dwNum]; WideCharToMultiByte (CP_OEMCP,NULL,lpcwszStr,-1,psText,dwNum,NULL,FALSE); CString 字符串操作。 拼接 CString str=str1+str2; 转换指针 CString str("graycat"); LPCTSTR p = s; 字符串比较 if(s1.Compare( s2 ) == -1){} 字符串查找 if(s.Find( "de" ) == 3){} 判断字符串是否为空 if(S.IsEmpty()) 字符串替换 str.replace(newstr,oldstr); str.replace(newlpcstr,oldlpcstr);

(0)

相关推荐

  • LINUX vim替换字符串指令

    vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。   :s/vivian ...

  • 如何使用python语言中字符串判断是否为数字字母

    在使用python语言中的字符串方法时,可以使用它们判断字符串中是否有字母或数字或其他的构成.下面利用几个实例说明字符串方法的用法,操作如下: 操作方法 01 第一步,如果想要查找字符串n1中的字符a ...

  • js实现字符串转化为对象(两种方式)

    javascript开发过程中,经常会遇到字符串转化为对象的操作.比如url传参时"name=jack&age=20&love=lily"转化为对象.可以用两种方法 ...

  • 在excel中如何用组合键CTRL+E复制字符串?

    在excel中,用组合键CTRL+E可以实现复制全部字符串和复制部分字符串.其中复制部分字符串,我们亦可以理解为提取字符:把单元格内字符串提取一部分到另一个单元格中.接下来,小编把操作步骤分享出来给大 ...

  • Linux中使用sed命令替换字符串小结

    最近写了几个小脚本用到了sed命令,学了一下,顺便记下 sed替换的基本语法为: 复制代码 代码如下: sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字 ...

  • php判断字符串是否包含

    在php程序中,经常需要判断某字符串是否含有特定字符串.字符串包含判断的方法很多,可以使用系统自带的一些函数去判断,也可以自定义字符串判断函数来实现. 方法一.使用strstr,strstr返回需要判 ...

  • Linux中vi的查找、替换、删除操作

    vi查找替换命令详解 一.查找 查找命令 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配字符串  ...

  • C/C++关于指针

    一些人可能为认为指针就是一个变量的内容就是加一个变量的地址. 这样认为非常对. 而如果说指针的知识只有这么多, 那么你就大错特错了. 指针并不是你想的那样只是一个变量指向另一个变量, 从而可以改变它的 ...

  • Win8鼠标指针怎么换?

    Windows系统自带的鼠标指针就一个箭头,觉得看久了有点审美疲劳,想要换一个有个性化的鼠标指针.又不知道该怎么换?下面,我们就一起来看看Win8系统下更换鼠标指针的方法. 方法/步骤 1.更改鼠标指 ...