c++字符串大小写转换循环,字符串的大小写转换c
c字符串大小写转换-小杰-博客园
c字符串大小写转换在C中,由于没有单独定义线这个对象,所以字符串的操作比较麻烦些。
字符串转换大小写是一个常用的功能,今天就简单总结下常用转换的方法:由于美国国家标准学会和统一码在函数名上有差别,故都列出来,不过本人以统一码为主。
【1.用C语言标准库函数toupper,tolower】
头文件:抄送类型c下面:ctype.h
转大写
美国国家标准学会版:int toupper(int c);/a
统一码版:int tow upper(wint _ t c);
MSDN:图珀,图珀,托沃普,图珀,托沃普
转小写:
int tolower(
背包容量
);
int到flow(
wint_t c
);
MSDN:干杯
缺陷:只能转换单个字符
示例:
WCHAR wch= a
wch=tow upper(wch);//A
【2.用C语言标准库函数_strlwr_s,_strupr_s】
注意:要使用安全的字符串函数,不要用_strlwr。
头文件:string.h
转小写:
Ansi:
errno_t _strlwr_s(
char *str,
尺寸_t元素数量
);
Unicode:
errno_t _wcslwr_s(
wchar_t *str,
尺寸_t元素数量
);
注意:元素数量要加上最后空字符长度,即元素个数=strlen(str)1;
MSDN:msdn http://。微软。com/en-us/library/y 889 wzfw(vs . 80).文件
转大写:
errno_t _strupr_s
char *str,
尺寸_t元素数量
);
errno_t _wcsupr_s(
wchar_t * str,
尺寸_t元素数量
);
MSDN:msdn http://。微软。com/en-us/library/SAE 941 FH(vs . 80).文件
示例:
WCHAR wideStr[]=L ABC ;
_wcslwr_s(wideStr,wcs len(wideStr)1);//abc
_wcsupr_s(wideStr,wcs len(wideStr)1);//ABC
【3.std:string转换大小写】
很遗憾,std:string没有提供大小写转换的功能,所以只能用标准模板库中的改变结合图珀/图洛完成。
头文件:字符串,cctype,算法
转小写
transform(str.begin()、str.end()、str.begin()、to lower);
transform(wstr.begin()、wstr.end()、wstr.begin()、to flow);
转大写
transform(s.begin()、s.end()、s.begin()、toupper);
transform(wstr.begin()、wstr.end()、wstr.begin()、tow upper);
示例:
wstring wstr=L Abc
transform(wstr.begin()、wstr.end()、wstr.begin()、tow upper);
增强库中字符串算法提供了大小写转换函数降低和to_upper】
示例:
#包含boost/算法/字符串. hpp
使用命名空间标准
使用命名空间增强;
wstring wstr=L Abc
boost:to _ lower(wstr);//abc
====================================================================
附完整例子
**
* @file test.cpp
* @简短字符大小写转换
* @作者greenerycn@gmail.com
* @日期2009年七月一日
*/
#include stdafx.h
#包括字符串
#包含windows.h
#包括cctype
#包含算法
# include boost \ algorithm \ string。HPP的
使用命名空间标准
int wmain(int argc,WCHAR* argv[])
{
char ch= a
ch=toupper(ch);
WCHAR wch= a
wch=tow upper(wch);
WCHAR wideStr[]=L ABC ;
_wcslwr_s(wideStr,wcs len(wideStr)1);
_wcsupr_s(wideStr,wcs len(wideStr)1);
wstring wstr=L Abc
transform(wstr.begin()、wstr.end()、wstr.begin()、tow upper);
boost:to _ lower(wstr);
返回0;
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。