string转化大小写(C++)

如何将一个字符串转换成大写或者小写?这是字符串匹配中经常需要做的事情,然而C++的Standard Library并没有提供将std::string转成大写和小写的功能,只有在提供将char转成大写(toupper)和小写(tolower)的功能而已。
但我们可以利用STL的transform配合toupper/tolower,完成std::string转换大(小)写的功能,也看到 模版编程 的威力了,一个transform函数,可以适用于任何类型,且只要自己提供 函数 ,就可完成任何Transform的动作。

C++

#include <iostream>
#include <string>
#include <cctype>
#include <algorithm>
using namespace std;
int main() {
    string s = "Clare";
    // toUpper
    transform(s.begin(), s.end(), s.begin(), ::toupper);
    // toLower
    //transform(s.begin(),s.end(),s.begin(), ::tolower);
    cout << s << endl;
}

C

#include <stdio.h>
#include <ctype.h>
int main() {
    char s[] = "Clare";
    int i = -1;
    while(s[i++])
        s[i] = toupper(s[i]);
    // s[i] = tolower(s[i]);
    puts(s);
}

 

转载链接

时间: 2024-10-06 16:38:52

string转化大小写(C++)的相关文章

转换实体对象 与string转化数组

/// <summary> /// 转换实体对象 /// </summary> /// <typeparam name="T1">转化的实体</typeparam> /// <typeparam name="T2">转换后的实体</typeparam> /// <param name="t1"></param> /// <param name=&

C++中string转化为常用数值类型

//模板类 用于将string类型转化为 常用数值类型 template <class Type> Type stringToNum(const string& str) { istringstream iss(str); Type num; iss >> num; return num; }int main(int argc, char* argv[]){ string str; cin >> str; stringToNum<float>(str

QString向char* 、string转化

在使用QT时,经常会进行QString.const char*.string之间的相互转化.我通常的做法是使用QString的成员函数完成向string.char*的转化,如: 1 //qstr为QString类型 2 3 string str=qstr.toStdString(); 4 char* pch=qstr.toStdString().c_str(); 但是,在不同的机器上,上述代码可能会导致程序崩溃.究其原因,是由于QString的toStdString()函数的不稳定所致.所以尽量

C++ string的大小写转换

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

C++将string转化成字符串数组

//str为需要截断的string,pattern为分隔符 std::vector<std::string> split(std::string str,std::string pattern) { std::string::size_type pos; std::vector<std::string> result; str+=pattern;//扩展字符串以方便操作 int size=str.size(); for(int i=0; i<size; i++) { pos=

将json格式的string转化为对象

(1) private void button1_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); sb.Append("{"); sb.Append("\"search\": null,"); sb.Append("\"totalCount\": 2,"); sb.Append("\"

Java基础(31):String的大小写转换、分离成数组、==与equals()的区别

继续来看 String 类常用的方法,如下代码所示: 运行结果: 那么,“==” 和 equals() 有什么区别呢? ==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象 equals(): 比较存储在两个字符串对象中的内容是否一致 PS:字节是计算机存储信息的基本单位,1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节,1 个英文字符存储需要 1 个字节.所以我们看到上面的程序运行结果中,每个汉字对应两个字节值,如“学”对应 “-47 -89”

Date、String、Calendar类型之间的转化

1.Calendar 转化 String  //获取当前时间的具体情况,如年,月,日,week,date,分,秒等         Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String dateStr = sdf.format(calendar.getTime()); 2.String 转化Calendar String s

java String、Data、Calendar时间转化

1.Calendar 转化 String Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = sdf.format(calendar.getTime()); 2.String 转化Calendar String str="2012-5-27"; SimpleDateFormat s