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

    佑佑 發表在 痞客邦 留言(1) 人氣()