在写一个题目的时候,发现需要用到将字符串中的字符排序,如果将string转换成char数组的形式就可以用sort()直接写,翻阅大佬博客后,发现有如下三种方法:
- c_str()
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string s;
cin >> s;
char *p = (char *)s.c_str();
sort(p, p + s.size());
for (int i = 0; i < s.size(); i++)
cout << p[i];
return 0;
}
/*
输入:
hdashdw
输出:
addhhsw
*/
- data()
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string s;
cin >> s;
char *p = (char *)s.data();
sort(p, p + s.size());
for (int i = 0; i < s.size(); i++)
cout << p[i];
return 0;
}
/*
输入:
sadbjab
输出:
aabbdjs
*/
- copy()
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string s;
cin >> s;
char p[40];
s.copy(p, s.size(), 0);
*(p + s.size()) = '\0';
sort(p, p + s.size());
for (int i = 0; i < s.size(); i++)
cout << p[i];
return 0;
}
/*
输入:
hello
输出:
ehllo
*/