#include<iostream>
#include<Windows.h>
#include<string.h>
using namespace std;
void reverse(unsigned char* s)
{
int len = strlen((char*) s);
cout << "字符串str的长度是" << len << endl;
unsigned char tmp[1024];
unsigned char* p1 = s;
unsigned char* p2 = tmp + len;
*p2-- = 0;
while (*p1) {
if (*p1 < 0x80)//ASCII字符,一般 都是小于等于127
{
*p2-- = *p1++;
}
else {
*(p2 - 1) = *p1++;
*p2 = *p1++;
p2 -= 2;
}
}
for (int i = 0; i < len; i++)
{
s[i] = tmp[i];
}
}
int main(void)
{
unsigned char str[] = "我是升级版的系统win11";
reverse(str);
cout << str << endl;
system("pause");
return 0;
}
练习1,实现含有中文符的字符串逆转,如“我是升级版的系统win11“转换成“11niw统系的版级升是我”
于 2023-04-06 22:18:24 首次发布
该代码示例展示了一个C++函数,用于反转输入的UTF-8字符串。函数首先计算字符串长度,然后使用两个指针从两端开始交换字符,特别处理了ASCII字符和多字节字符的情况。在主函数中,对包含我是升级版的系统win11的字符串进行了反转操作。
摘要由CSDN通过智能技术生成