1. 程式人生 > >實現中英文混合string的逆向輸出

實現中英文混合string的逆向輸出

#include <iostream>
using namespace std;

// 輸入一個字串(包括英文和中文),將其反序輸出, 如:
// hello 今天真熱 ---> 熱真天今 olleh

int numChar(char c)  // English  -> 1       C -> n     C -> 0
{
    int n = 0;
    for (int i=7; i>=0; i--) {
        if (c & (1<<i)) {
            n++;
        } else {
            
break; } } if (n == 0) { return 1; } else if (n == 1) { return 0; } else { return n; } } int main() { string a; string b; getline(cin, a); int n = a.size(); b.resize(n); for
(int i=0; i<n; ) { int len = numChar(a[i]); if (len == 0) { i++; continue; } for (int j=0; j<len; j++) { b[n-i-len+j] = a[i+j]; // a[0] a[1]------ a[n-1] // b[n-1]b[n-2]------b[0] } i += len; } cout
<< "a = " << a << endl; cout << "b = " << b << endl; }