c语言字符串反转
时间: 2023-06-21 15:11:45 浏览: 107
可以使用指针和循环来实现字符串反转。具体的代码如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int len = strlen(str);
char *p = str;
char *q = str + len - 1;
while (p < q) {
char temp = *p;
*p++ = *q;
*q-- = temp;
}
}
int main() {
char str[] = "hello world";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
输出结果为:
```
Original string: hello world
Reversed string: dlrow olleh
```
在这个例子中,我们首先计算字符串的长度,然后用两个指针 p 和 q 分别指向字符串的开头和结尾。然后在循环中,我们不断交换 p 和 q 指向的字符,直到两个指针相遇。最后,我们就得到了反转后的字符串。
相关问题
使用c语言字符串反转
好的,以下是一种使用 C 语言实现字符串反转的方法:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin); // 从标准输入读取字符串
reverse_string(str); // 反转字符串
printf("反转后的字符串为:%s\n", str);
return 0;
}
```
在上面的代码中,`reverse_string` 函数接收一个指向字符串的指针,将字符串反转。具体地,它首先计算字符串的长度 `len`,然后使用一个循环将字符串前半部分和后半部分的字符交换位置,直到反转完成。
在 `main` 函数中,我们先读取用户输入的字符串,然后调用 `reverse_string` 函数反转字符串,并输出反转后的结果。
注意,这里使用了 `fgets` 函数来读取字符串,因为 `gets` 函数已经被废弃,容易导致缓冲区溢出。而 `fgets` 函数则可以指定读取的最大字符数,避免了这个问题。
运行程序后,输入一个字符串,程序会输出反转后的结果。例如,输入 "Hello, world!",程序输出:
```
反转后的字符串为:!dlrow ,olleH
```
C语言字符串反转函数
在C语言中,字符串反转是一个常见的编程练习,可以使用循环或者指针来实现。这里提供一种基本的指针法示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void reverse(char* str);
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
// 字符串反转函数
void reverse(char* str) {
int len = strlen(str); // 获取字符串长度
char temp; // 用于交换字符的临时变量
for (int i = 0; i < len / 2; i++) { // 只需遍历一半,因为对称处理
temp = str[i]; // 存储当前字符
str[i] = str[len - i - 1]; // 将当前字符移到原位置的反向位置
str[len - i - 1] = temp; // 将临时存储的字符放回原位置
}
}
阅读全文