实现中英文混合string的逆向输出

时间:2024-08-24 17:33:38
#include <iostream>
using namespace std; // 输入一个字符串(包括英文和中文),将其反序输出, 如:
// hello 今天真热 ---> 热真天今 olleh int numChar(char c) // English -> 1 C -> n C -> 0
{
int n = ;
for (int i=; i>=; i--) {
if (c & (<<i)) {
n++;
} else {
break;
}
}
if (n == ) {
return ;
} else if (n == ) {
return ;
} else {
return n;
}
} int main()
{
string a;
string b; getline(cin, a);
int n = a.size();
b.resize(n); for (int i=; i<n; ) {
int len = numChar(a[i]);
if (len == ) {
i++;
continue;
}
for (int j=; 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;
}