C语言程序设计如何翻转一个字符串?
时间: 2024-10-14 19:07:07 浏览: 16
在C语言中,反转一个字符串的一种常见方法是利用双指针技术,一个指向字符串的开头,一个指向结尾,然后交换它们指向的字符,直到两者相遇。这里有一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
if (str == NULL || strlen(str) <= 1) {
return; // 如果字符串为空或只有一个字符,无需反转
}
char *start = str; // 初始化起点
char *end = str + strlen(str) - 1; // 初始化终点
while (start < end) {
// 交换两个指针所指的字符
char 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); // 输出: "!dlroW ,olleH"
return 0;
}
```
这个程序首先检查输入的字符串长度,如果小于等于1则直接返回。然后它创建了两个指针`start`和`end`,并不断交换它们所指向的字符,直到这两个指针相遇(即`start >= end`)。在每次迭代中,都会打印出当前字符串的状态,可以看到最终得到的就是原字符串的反向形式。
阅读全文