falla.zhang

导航

MFC 问题集(9)CString/string/char *常用操作

a)       查找
作用 char* string CString
查找指定值 strchr
strstr
strrstr
strspn find Find
第一个匹配的值   fild_first_of FindOneOf
从后面开始查找     ReserveFind
指定匹配方式   find_if  

注:find_if中是把范围内的值挨个代入匹配函数直至返回true


b)      比较
作用 char* string CString
查找指定值(区分大小写) strcmp
strncmp
strcoll
_strncoll operator<
operator>
operator<=
operator>=
operator==
operator!= Collate
Compare
查找指定值(不区分大小写) _stricmp
_strnicmp
_stricoll
_strnicoll   CollateNoCase
CompareNoCase

注:返回值如果<0则前面的值小于后面的值,反之亦然


c)      替换
作用 char* string CString
查找指定值 _strset
_strnset replace
replace_copy
replace_copy_if
replace_if
Replace

d)      插入
作用 char* string CString
查找指定值   insert Insert

e)       增加
作用 char* string CString
动态增加值 strcat push
append Append
AppendChar
AppendFormat

f)      截取
作用 char* string CString
得到部分值 用下标操作 substr Left
Mid
Right
Truncate

g)      移除
作用 char* string CString
移除部份值   remove Remove
移除空白值 RemoveBlanks
注:此为ATL提供,非C函数 remove_if Trim
TrimLeft
TrimRigth

h)      转换大小写
作用 char* string CString
转换大小写 _strlwr
_strupr   MakeLower
MakeUpper

i)       与其他类型转换
作用 char* string CString
转化为数字 atoi
atod
atof   Format
转化为char*   c_str GetBuffer
GetBufferSetLength

j)       格式化
作用 char* string CString
格式化 sprintf   Format

k)      得到长度
作用 char* string CString
得到长度 strlen length GetLength
得到大小   size GetAllocLength

l)      判断为空
作用 char* string CString
判断是否为空 判断是否==NULL或者第一个字符是否是’\0’ empty IsEmpty

m)        重定义大小
作用 char* string CString
重定义大小 realloc
new resize GetBufferSetLength

n)        释放资源
作用 char* string CString
释放 free
delete (delete[])   ReleaseBuffer
ReleaseBufferSetLength

  1. 安全性CString > string > char*
  2. 灵活性CString > string >char*
  3. 可移植性char* = string > CString

总结
综上所述,在MFC、ATL中使用字符串尽量使用CString,而在非微软平台上或对移植性要求较高的场合推荐使用string,标准模板

库提供了那么强大的泛型算法,没必要再自己去造车轮。

posted on 2010-02-22 16:14  falla.zhang  阅读(925)  评论(0编辑  收藏  举报