一、string转小写字母
string
转小写字母是一项常见的字符串操作任务。在C++中,我们可以通过循环遍历字符串并按照ASCII码进行位移的方式来实现。
#include <string>
#include <algorithm>
using namespace std;
void to_lower(string& str) {
transform(str.begin(), str.end(), str.begin(), ::tolower);
}
int main() {
string s = "HELLO WORLD";
to_lower(s);
cout << s << endl;
return 0;
}
上述代码中,我们使用了<algorithm>
头文件中的transform()
函数来实现遍历操作,使用::tolower
来进行小写字母的转换。
二、string转换成小写
除了可以遍历字符串进行小写转换操作,C++中还提供了许多高效的库函数来实现这一目标。
#include <string>
#include <locale>
using namespace std;
string to_lower(string str) {
transform(str.begin(), str.end(), str.begin(), ::tolower);
return str;
}
string to_lower_case(string str) {
locale loc;
for (int i = 0; i < str.size(); ++i) {
str[i] = tolower(str[i], loc);
}
return str;
}
int main() {
string s = "HELLO WORLD";
cout << to_lower(s) << endl;
cout << to_lower_case(s) << endl;
return 0;
}
其中,我们使用了<locale>
标准库中的tolower()
函数来实现字符的小写转换。
三、string转小写函数
依靠Lambda表达式来实现string
转小写函数:
#include <string>
#include <algorithm>
using namespace std;
string tolower(string s) {
transform(s.begin(), s.end(), s.begin(),
[](unsigned char c){ return tolower(c); });
return s;
}
int main() {
string s = "HELLO WORLD";
cout << tolower(s) << endl;
return 0;
}
上述代码中使用了lambda表达式来实现对字符的小写转换。
四、C++ string 转小写
如果使用C++ string
来实现小写转换,我们可以直接使用在<algorithm>
头文件中定义的transform()
函数,将每个字符转换为小写字符即可:
#include <string>
#include <algorithm>
using namespace std;
string tolower(string s) {
transform(s.begin(), s.end(), s.begin(), ::tolower);
return s;
}
int main() {
string s = "HELLO WORLD";
cout << tolower(s) << endl;
return 0;
}
五、std::string 转小写
C++标准库中的std::string
类中也有小写转换函数,我们可以使用transform()
函数和tolower()
函数来实现:
#include <string>
#include <locale>
using namespace std;
string tolower(string s) {
locale loc;
for (int i = 0; i < s.size(); ++i) {
s[i] = tolower(s[i], loc);
}
return s;
}
int main() {
string s = "HELLO WORLD";
cout << tolower(s) << endl;
return 0;
}
六、string大写转小写
和小写转大写很类似,只需要将toupper()
函数替换为tolower()
函数即可:
#include <string>
#include <algorithm>
using namespace std;
string tolower(string s) {
transform(s.begin(), s.end(), s.begin(), ::tolower);
return s;
}
string toupper(string s) {
transform(s.begin(), s.end(), s.begin(), ::toupper);
return s;
}
int main() {
string s = "HELLO WORLD";
cout << tolower(s) << endl;
cout << toupper(s) << endl;
return 0;
}
七、string转list
在C++中,如果我们需要将一个字符串按照某个特定的分隔符进行分割,并将分割后的内容存入一个list
中,可以使用下面的代码:
#include <list>
#include <sstream>
#include <string>
using namespace std;
list<string> split(const string& str, char delimiter = ' ') {
list<string> result;
stringstream ss(str);
string item;
while (getline(ss, item, delimiter)) {
result.push_back(item);
}
return result;
}
int main() {
string s = "hello world";
list<string> l = split(s);
for (auto& item: l) {
cout << item << endl;
}
return 0;
}
在上述代码中,我们使用了std::stringstream
和std::getline()
函数来实现字符串分割的操作。可以根据需要设定分隔符来分割字符串。
八、string转integer
如果我们需要将一个字符串转换为整数,可以使用C++标准库提供的stol()
函数:
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "123";
long res = stol(s);
cout << res << endl;
return 0;
}
九、string转byte
在C++中,同样可以将一个字符串表示的信息转换为二进制数据。一个字节可以被表示为char
类型。我们可以使用static_cast()
函数将其转换为char
类型:
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "A";
char res = static_cast<char>(s.data()[0]);
cout << (int)res << endl;
return 0;
}
在上述代码中,我们将string
类型的数据转换为char
类型,并强制转换为整数输出。