#include <stdio.h>
#include <string.h>
//字符串逆序
int main()
{
char str[100] = "hello world";
int len = strlen(str);//strlen函数求字符串长度时不包括结尾的'\0'
char tmp;
int min = 0;
int max = len - 1;
while (min < max)
{
tmp = str[min];
str[min++] = str[max];
str[max--] = tmp;
}
int i;
for (i = 0; i < len; i++)
{
printf ("%c", str[i]);
}
printf ("\n");
return 0;
}
#include <stdio.h>
#include <string.h>
//中文逆序,考虑编码格式
int main()
{
char a[] = "好好学习";
int len = strlen(a);
char tmp;
int min = 0;
int max = len - 1;
while (min < max)
{
tmp = a[min];
a[min] = a[max-2];//当前编码下一个中文占3个字节
a[max-2] = tmp;//3个字节构成一个完整的汉字,
//这三个字节的排列次序不能乱
tmp = a[min+1];
a[min+1] = a[max-1];
a[max-1] = tmp;
tmp = a[min+2];
a[min+2] = a[max];
a[max] = tmp; //到这为止是单个中文字的逆序
min +=3;//跨过3个字节到下一个汉字的开头字节
max -=3;
}
printf ("%s\n", a);
return 0;
}