string的大小写转换

12 篇文章 0 订阅
2 篇文章 0 订阅

       将一个string转换成大写或者小写,是项目中经常需要做的事情,但string类里并没有提供这个方法。自己写个函数来实现,说起来挺简单,但做起来总让人觉得不方便。打个比方:早上起来想吃个汉堡,冰箱里有生牛肉,有面粉,也有微波炉,是可以自己做的,但是实在是太费事,没几个人愿意做。但是,打个电话给肯德基宅急送,10分钟后就有热乎乎的汉堡送上门了,大大节省了时间(时间就是金钱,你可以将时间用在更重要的开发工作上),并且味道也不差,何乐而不为呢?

       STL的algorithm库确实给我们提供了这样的便利,使用模板函数transform可以轻松解决这个问题,开发人员只需要提供一个函数对象,例如将char转成大写的toupper函数或者小写的函数tolower函数。


transform原型:

template < class InputIterator, class OutputIterator, class UnaryOperator >
  OutputIterator transform ( InputIterator first1, InputIterator last1,
                             OutputIterator result, UnaryOperator op );

template < class InputIterator1, class InputIterator2,
           class OutputIterator, class BinaryOperator >
  OutputIterator transform ( InputIterator1 first1, InputIterator1 last1,
                             InputIterator2 first2, OutputIterator result,
                             BinaryOperator binary_op );

测试代码:

#include <string>
#include <algorithm>
using namespace std;

int main()
{
    string strA = "yasaken@126.com";
    string strB = "LURY@LENOVO.com";
    printf("Before transform:\n");
    printf("strA:%s \n", strA.c_str());
    printf("strB:%s \n\n", strB.c_str());

    transform(strA.begin(), strA.end(), strA.begin(), ::toupper);
    transform(strB.begin(), strB.end(), strB.begin(), ::toupper);
    printf("After transform to toupper:\n");
    printf("strA:%s \n", strA.c_str());
    printf("strB:%s \n\n", strB.c_str());

    transform(strA.begin(), strA.end(), strA.begin(), ::tolower);
    transform(strB.begin(), strB.end(), strB.begin(), ::tolower);
    printf("After transform to lower:\n");
    printf("strA:%s \n", strA.c_str());
    printf("strB:%s \n\n", strB.c_str());
    return 0;
}

运行结果:

strA:yasaken@126.com 
strB:LURY@LENOVO.com 

After transform to toupper:
strA:YASAKEN@126.COM 
strB:LURY@LENOVO.COM 

After transform to lower:
strA:yasaken@126.com 
strB:lury@lenovo.com 

最后补一句:STL algorithm功能实在是太强劲了,非常推荐。


  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要将字符串转换大写或小写,可以使用C++标准库中的`std::transform`函数。这个函数需要包括`<algorithm>`头文件,并且需要传入四个参数:待转换的字符串的开始和结束迭代器以及要转换的结果的开始迭代器和转换规则。对于大小写转换,可以使用`::toupper`来转换大写,使用`::tolower`来转换为小写。 在给定的代码示例中,字符串`"Hello World"`首先被转换大写形式,然后再转换为小写形式,然后通过`cout`打印出来。可以看到,转换后的结果分别是`"HELLO WORLD"`和`"hello world"`。 如果你想将其他字符串进行大小写转换,可以将这些代码嵌入到你的程序中,并在`string s`的地方替换为你要转换的字符串。然后运行程序,就会得到相应的大小写转换结果。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [string大小写转换](https://blog.csdn.net/qq_37804582/article/details/80571709)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [C++实现人民币大小写转换](https://download.csdn.net/download/smartboy_tao/10383750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值