字符串-反转字符串
原理如下:
//字符串-反转字符串
#include<bits/stdc++.h>
using namespace std;
string ch;
int main(){
cin >> ch;
for (int i = 0, j = ch.size()-1; i < j; i++, j--){
swap(ch[i], ch[j]);
}
cout << ch << '\n';
return 0;
}
字符串-反转字符串II
//字符串-反转字符串II
#include<bits/stdc++.h>
using namespace std;
string s;
int k;
int main(){
cin >> s >> k;
for (int i = 0; i < s.size(); i += 2 * k){
if (i + k <= s.size()){
reverse(s.begin() + i, s.begin() + i + k);
}
else {
reverse(s.begin() + i, s.end());
}
}
cout << s << '\n';
return 0;
}
字符串-替换空格
//字符串-替换空格
#include<bits/stdc++.h>
using namespace std;
string s;
int main(){
getline(cin, s);
int count = 0;
int oldSize = s.size();
for (int i = 0; i < s.size(); i++){
if (s[i] == ' '){
count++;
}
}
s.resize(s.size() + count * 2);
int newSize = s.size();
for (int i = oldSize - 1, j = newSize - 1; i < j; i--, j--){
if (s[i] == ' '){
s[j] = '0', s[j - 1] = '2', s[j - 2] = '%';
j -= 2;
}
else {
s[j] = s[i];
}
}
cout << s << '\n';
return 0;
}
字符串-左旋转字符串
//字符串-左旋转字符串
#include<bits/stdc++.h>
using namespace std;
string s;
int k;
int main(){
getline(cin, s);
cin >> k;
reverse(s.begin(), s.begin() + k);
reverse(s.begin() + k, s.end());
reverse(s.begin(), s.end());
cout << s << '\n';
return 0;
}