30 lines
871 B
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];
|
|
}
|
|
} |