c++大小写转换
今天给来讲一下c++大小写转换的方法,那c++大小写转换到底怎写那?请看下面4种方法:
1.用C语言标准库函数toupper,tolower
头文件:cctype c下面:ctype.h
转大写:
Ansi版: int toupper(int c);
Unicode版:int towupper(wint_t c);
MSDN: toupper, _toupper, towupper, _toupper_l, _towupper_l
转小写:
int tolower( int c );
int towlower( wint_t c );
MSDN:tolower
缺陷:只能转换单个字符
Example: WCHAR wch = "a"; wch = towupper(wch); // A
2.用C++语言标准库函数_strlwr_s, _strupr_s。注意:要使用安全的字符串函数,不用_strlwr。
头文件:string.h
转小写:
Ansi:
errno_t _strlwr_s(char *str,size_t numberOfElements);
Unicode:
errno_t _wcslwr_s(wchar_t *str,size_t numberOfElements);
注意:numberOfElements 要加上最后NULL字符长度,即numberOfElements = strlen(str) + 1;
转大写:
errno_t _strupr_s(char *str,size_t numberOfElements);
errno_t _wcsupr_s(wchar_t * str,size_t numberOfElements);
Example:
WCHAR wideStr[] = L"Abc";
_wcslwr_s(wideStr, wcslen(wideStr) + 1); // abc
_wcsupr_s(wideStr, wcslen(wideStr) + 1);// ABC
3.std::string 转换大小写
头文件: string, cctype,algorithm
转小写
transform(str.begin(),str.end(),str.begin(),tolower);
transform(wstr.begin(), wstr.end(), wstr.begin(), towlower);
转大写
transform(s.begin(), s.end(), s.begin(), toupper);
transform(wstr.begin(), wstr.end(), wstr.begin(), towupper);
Example:
wstring wstr =L"Abc";
transform(wstr.begin(), wstr.end(), wstr.begin(), towupper);
4.在boost库中可以用string_algorithm 来大小写转换函数to_lower 和 to_upper
Example:
#include
using namespace std;
using namespace boost;
wstring wstr =L"Abc";
boost::to_lower(wstr); // abc
以上内容就是c++大小写转换的4种方法。