C++字串反轉
例如輸入123,則輸出321,跟排序無關,只和位置有關的問題
相對於新手來說,我建議先知道排法,練為高手自有自己的函式可以寫~~
新手區:
- #include <string.h>
- #include<iostream>
- using namespace std;
- int main()
- {
- int i,ilength;
- char str1[20];
- cout << "輸入一個字串: ";
- cin >> str1;
- ilength = strlen(str1);
- cout << "該子串的反向:";
- for(i = ilength;i>=1;i--){
- cout << str1[i];
- }
- cout << str1[0] << endl;
- }
非常簡單的反轉
但題目機車一點,問你我想要從位置0到n反轉就好,n之後的不動,在外加我要反轉很多次
那怎辦勒 QAQ
ヾ( ' ∀ ' )ノ 那還不簡單~~
用這個~~ reverce 的功能啦!!(*≧∇≦*) /
他們排序一樣的打法 reverse( str.begin( ) , str.end( ) )
高手區:
- #include <iostream>
- #include <algorithm> //一定要打喔!!!!!!!!
- using namespace std;
- int main()
- {
- string str;
- cout << "輸入一個字串: ";
- cin >> str;
- reverse(str.begin(),str.end());
- cout << "該子串的反向: ";
- cout << str;
- }
知道排序的sort,那這也一樣
你要從第2個反轉的話
reverse(str.begin()+1,str.end());
那就1不動後動;
反之....
reverse(str.begin(),str.end()-1);
如果問妳很多次的反轉,那就改掉+或-的值,就行了
程式碼:
問題來源:
end (^_^)/