qfedu-c-level/day8/homework/h4.c

30 lines
871 B
C

// 设计函数,接收一个字符串,返回这个字符串的逆向内容。
#include <stdio.h>
#include <string.h> // 使用 strlen() 函数,获取字符串长度
void reverse(char *str);
int main(void)
{
char str[] = "hello world";
reverse(str);
printf("%s\n", str);
return 0;
}
void reverse(char *str) // 传入的是指针,直接修改原字符串
{
int len = strlen(str); // 获取字符串长度
// for (int i = 0; i < len / 2; i++) // 交换前后两个字符,使用二分法
for (int i = 0; i < len >> 1; i++) // len >> 1 相当于 len / 2
{
// char temp = str[i];
// str[i] = str[len - 1 - i];
// str[len - 1 - i] = temp;
// 交换前后两个字符,使用异或法
str[i] ^= str[len - 1 - i];
str[len - 1 - i] ^= str[i];
str[i] ^= str[len - 1 - i];
}
}