c语言字符串反转
时间: 2023-06-21 21:11:45 浏览: 54
可以使用指针和循环来实现字符串反转。具体的代码如下:
```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 reverseString(char* str) {
int length = strlen(str);
char* start = str;
char* end = str + length - 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);
reverseString(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
方法二:使用递归进行反转
```c
#include <stdio.h>
#include <string.h>
void reverseString(char* str, int start, int end) {
if (start >= end) {
return;
}
char temp = str[start];
str[start] = str[end];
str[end] = temp;
reverseString(str, start + 1, end - 1);
}
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
reverseString(str, 0, strlen(str) - 1);
printf("Reversed string: %s\n", str);
return 0;
}
```