热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C++string大小写转换以及transform,tolower,toupper,用法

C++中没有提供string类型的大小写转换,今天写了一下,方法很多#include<iostream>#include<string>#inclu

C++中没有提供string类型的大小写转换,今天写了一下,方法很多

#include 
#include 
#include 
#include 

using namespace std;

int main()
{
    string s = "Hello World";
    cout <::toupper使用定义在全局空间里的toupper
    cout <::tolower使用定义在全局空间里的tolower
    cout < 
 
查阅了资料, toupper和tolower在C++中定义分std和cctype

而定义在std中时原型为charT toupper (charT c, const locale& loc);

而transform函数:

作用是:将某操作应用于指定范围的每个元素。

transform函数有两个重载版本:

transform(first,last,result,op);//first是容器的首迭代器,last为容器的末迭代器,result为存放结果的容器,op为要进行操作的一元函数对象或sturct、class。

transform(first1,last1,first2,result,binary_op);//first1是第一个容器的首迭代器,last1为第一个容器的末迭代器,first2为第二个容器的首迭代器,result为存放结果的容器,binary_op为要进行操作的二元函数对象或sturct、class

如上,std中toupper的原型为一个二元函数,所以使用std::toupper会报错:unresolved overloaded function

但是可以这样使用:

#include 
#include 
#include 
using namespace std;

int main()
{
    string s = "Hello World";
    cout < 
 函数指针解决~ 
 

欢迎拍砖,感谢龙哥的教导。




推荐阅读
  • 在C++程序中,文档A的每一行包含一个结构体数据,其中某些字段可能包含不同数量的数字。需要将这些结构体数据逐行读取并存储到向量中,随后不仅在控制台上显示,还要输出到新创建的文档B中。希望得到指导,感谢! ... [详细]
  • 深入解析C++ Atomic编程中的内存顺序
    在多线程环境中,为了防止多个线程同时修改同一数据导致的竞争条件,通常会使用内核级同步对象,如事件、互斥锁和信号量等。然而,这些方法往往伴随着高昂的上下文切换成本。本文将探讨如何利用C++11中的原子操作和内存顺序来优化多线程编程,减少不必要的开销。 ... [详细]
  • 本文探讨了一个在Mac Mavericks系统上使用Clang++成功编译但通过R CMD SHLIB构建并在R中加载时遇到‘符号未找到’错误的C++程序问题。文章详细分析了错误原因,并提供了有效的解决方案。 ... [详细]
  • 在尝试对 QQmlPropertyMap 类进行测试驱动开发时,发现其派生类中无法正常调用槽函数或 Q_INVOKABLE 方法。这可能是由于 QQmlPropertyMap 的内部实现机制导致的,需要进一步研究以找到解决方案。 ... [详细]
  • 0-1背包问题的两种解决方法:动态规划与回溯法
    本文探讨了0-1背包问题的两种主要解决方案——动态规划与回溯法,详细介绍了每种方法的实现逻辑、算法流程及具体示例。 ... [详细]
  • 本文介绍了一个使用C++编写的算法,用于从给定的字符串中找出最长的连续重复子串。例如,对于输入字符串“ababc”,算法将返回“ab”。文中不仅提供了详细的代码实现,还分析了算法的时间和空间复杂度。 ... [详细]
  • VSCode中使用Clang-Format进行C/C++代码格式化配置
    本文介绍了如何在VSCode中配置Clang-Format以实现C/C++代码的自动格式化,包括安装必要的扩展、配置文件的创建以及常用设置的解释。建议阅读官方文档以获取更多详细信息。 ... [详细]
  • 本文档提供了数据结构在C语言中的实现示例,特别是解决二次方程的代码片段,以及《数据结构(用面向对象方法与C++语言描述)第二版》的部分习题答案。 ... [详细]
  • 本文介绍了如何通过修改Android应用的配置文件和编写布局与Activity代码,利用DOM模式将用户输入的数据保存为XML文件。 ... [详细]
  • 本文探讨了在形状类族中应用纯虚函数的设计模式及其解析方法。通过定义一个基类 `Shape`,其中包含一个纯虚函数 `area()`,实现了多态性和代码的灵活性。该设计使得派生类能够根据具体的形状计算面积,从而提高了代码的可扩展性和复用性。示例代码展示了如何利用纯虚函数实现这一机制。 ... [详细]
  • 程序打印菱形 ... [详细]
  • 本文介绍如何利用C语言在Linux操作系统中实现递归创建多级目录的功能,包括必要的头文件引入和函数实现。 ... [详细]
  • 本文将作为我硕士论文的一部分,但鉴于其内容的独特性和趣味性,决定单独发布。文中将定义一些皮亚诺公理,并介绍如何使用这些公理进行等式替换,以证明定理。 ... [详细]
  • iOS如何实现手势
    这篇文章主要为大家展示了“iOS如何实现手势”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“iOS ... [详细]
  • 编码unicode解决了语言不通的问题.但是.unicode又有一个新问题.由于unicode是万国码.把所有国家的文字都编进去了.这就导致一个unicode占用的空间会很大.原来 ... [详细]
author-avatar
孤独小舟9
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有