使用c语言编写一个逆转字符串的函数reverse
时间: 2024-04-29 13:26:40 浏览: 117
好的,以下是使用C语言编写的逆转字符串的函数reverse:
```c
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;
}
}
```
这个函数可以接受一个字符串参数,并将该字符串逆转。例如,如果输入字符串是"hello",那么调用reverse函数后,该字符串变为"olleh"。
相关问题
从键盘输入一个最多有80个字符的字符串,用C语言编写程序将该字符串逆转。注意输出要换行,提示:用puts()函数输出逆转后的字符串后自带换行,或用其他方法输出后进行换行。
在C语言中,你可以通过两个指针,一个指向字符串的起始位置,另一个指向结束位置,然后逐个交换字符来实现字符串的逆转。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h> // 包含strlen() 函数
void reverse_string(char str[]) {
int len = strlen(str); // 获取字符串长度
char temp; // 临时变量存储字符
// 从字符串末尾开始遍历到开头
for (int i = len - 1; i >= 0; i--) {
temp = str[i]; // 存储当前字符
str[i] = str[len - i - 1]; // 将当前字符放回原位置
str[len - i - 1] = temp; // 将之前的位置更新为临时存储的字符
}
}
int main() {
char input[81]; // 定义一个足够大的数组用于接收用户输入
printf("请输入一个最多80个字符的字符串:");
fgets(input, sizeof(input), stdin); // 使用fgets读取用户输入并去除末尾的换行符
input[strcspn(input, "\n")] = '\0'; // 移除fgets添加的换行符
reverse_string(input); // 反转字符串
puts(input); // 输出逆转后的字符串并换行
return 0;
}
```
当你运行这个程序时,它会提示用户输入一个最多80个字符的字符串,输入完毕后,它会显示逆转后的字符串。
c语言字符串逆转PTA
在C语言中,字符串逆转是一个常见的编程练习题,通常使用循环和临时变量的方式来完成。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void reverse(char str[]) {
int length = strlen(str) - 1; // 获取字符串长度,从后往前数第一个字符是倒数第一个
char temp;
while (length >= 0) { // 遍历整个字符串,从最后一个字符开始到第一个字符
temp = str[length]; // 将当前字符存入temp
str[length] = str[0]; // 把第一个字符移到当前位置
str[0] = temp; // 把temp的值放到第一个字符位置
length--;
}
}
int main() {
char str[100];
printf("请输入一个字符串: ");
fgets(str, sizeof(str), stdin); // 输入字符串,fgets用于处理换行符
str[strcspn(str, "\n")] = '\0'; // 去除fgets留下的换行符
reverse(str);
printf("逆转后的字符串: %s\n", str);
return 0;
}
```
这个程序首先获取用户输入的字符串,然后通过`reverse`函数将字符串中的字符顺序反转。在`reverse`函数内部,我们用一个临时变量存储当前字符,并逐次交换首尾位置,直到遍历完整个字符串。
阅读全文