在c语言中定义一个函数反转字符串
时间: 2024-10-09 09:11:34 浏览: 44
在C语言中,你可以定义一个函数来反转一个字符串。这里提供一种简单的基于栈的方法,称为“双指针”技巧:
```c
#include <stdio.h>
#include <string.h>
// 定义一个函数,传入一个指向字符串首地址的指针,返回值也是该指针类型
void reverse(char* str) {
if (str == NULL || *str == '\0') { // 如果字符串为空或结束标志已到达,则直接返回
return;
}
char temp; // 临时变量,用于交换字符
char* start = str; // 存储起始位置的指针
char* end = str + strlen(str) - 1; // 存储结束位置的指针
while (start < end) { // 当开始指针小于结束指针时继续循环
temp = *start; // 保存开始处的字符
*start = *end; // 将结束处的字符放到开始处
*end = temp; // 将保存的开始处的字符放到结束处
start++; // 向右移动开始指针
end--; // 向左移动结束指针
}
}
// 测试反转函数
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
这个函数会改变原字符串的内容,使其变成反转形式。如上述代码所示,它首先检查字符串是否为空,然后通过一个while循环,每次将开头和结尾的字符互换,直到遍历完整个字符串。
阅读全文