zoukankan      html  css  js  c++  java
  • 实现中英文混合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;
    }
  • 相关阅读:
    字符串
    决策树
    结构体实验
    指针实验
    打印杨辉三角
    P176 1.2.3
    第七次作业
    第六次作业
    第五次作业
    第四次修改
  • 原文地址:https://www.cnblogs.com/nanqiang/p/9953026.html
Copyright © 2011-2022 走看看