如何將一個(gè)字符串轉(zhuǎn)換成大寫或者小寫?這是字符串匹配中經(jīng)常需要做的事情。然而C++的Standard Library并沒有提供將std::string轉(zhuǎn)成大寫和小寫的功能,只有在<cctype>中提供了將char轉(zhuǎn)成大寫(toupper)和小寫(tolower)的函數(shù)而已。 但我們可以利用STL的transform配合toupper/tolower,完成std::string轉(zhuǎn)換大(小)寫的功能。一個(gè)transform函數(shù),可以適用于任何類型,且只要自己提供操作函數(shù),就可完成任何想要的動(dòng)作。
C++#include <iostream>#include <string>#include <cctype>//toupper/tolower#include <algorithm>//transformusing namespace std;int main() {
C#include <stdio.h>#include <ctype.h>//toupper/tolowerint main() {
在linux下編譯的時(shí)候會(huì)遇到以下報(bào)錯(cuò):
對(duì)‘transform(std::basic_string<char>::iterator,std::basic_string<char>::iterator,std::basic_string<char>::iterator, <未解決的重載函數(shù)類型>)’的調(diào)用沒有匹配的函數(shù)
問題提示沒找到匹配的操作函數(shù),解決方法是在tolower/toupper前加上::
transform(s.begin(), s.end(), s.begin(), ::toupper);
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注