C语言 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字数组S的形式给出 不要给另外的数组分配额外的空间解决这一问题
时间: 2024-09-07 12:06:01 浏览: 54
要实现这个功能,可以编写一个函数,使用双指针技巧,一个指针从字符串的开始位置向后移动,另一个指针从字符串的末尾开始向前移动,交换这两个指针所指向的字符,然后移动指针直到两个指针相遇或交错。这样就可以在不使用额外数组空间的情况下反转字符串。下面是具体的C语言代码实现:
```c
#include <stdio.h>
void reverseString(char *s) {
int length = 0;
char *end = s;
// 计算字符串长度
while (*end) {
length++;
end++;
}
// 使用双指针技巧进行字符交换
for (int i = 0; i < length / 2; i++) {
char temp = s[i];
s[i] = s[length - i - 1];
s[length - i - 1] = temp;
}
}
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
reverseString(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
这段代码首先通过循环计算出字符串的长度,然后使用一个循环通过交换字符来反转字符串。需要注意的是,
阅读全文