c语言字符串倒序输出
时间: 2023-11-04 19:06:36 浏览: 136
c语言实现倒序输出
5星 · 资源好评率100%
c语言字符串倒序输出有多种方法,其中包括倒序字符串递归法和倒序字符串指针法。
倒序字符串递归法的步骤如下:
1. 首先确定字符串的长度,并将第一个字符存储在一个临时变量中。
2. 将最后一个字符放到第一个字符的位置上,并在尾部加上'\0',以便后续递归计算字符串长度。
3. 如果剩余字符串的长度大于等于2,则对剩余的子字符串进行递归操作。
4. 将之前存储的临时变量中的字符放到字符串的最后一个位置上。
5. 输出倒序后的字符串。
倒序字符串指针法的步骤如下:
1. 确定字符串的长度,并定义两个指针,一个指向头部,一个指向尾部。
2. 使用一个临时变量进行字符的交换,将头部指针所指向的字符与尾部指针所指向的字符进行交换。
3. 头部指针往后走,尾部指针往前走,继续进行字符的交换,直到头部指针大于等于尾部指针。
4. 输出倒序后的字符串。
下面是使用倒序字符串递归法和倒序字符串指针法的代码示例:
倒序字符串递归法:
#include <stdio.h>
#include <string.h>
void reverse_string(char* arr) {
int len = strlen(arr);
char temp = *arr;
*arr = *(arr + len - 1);
*(arr + len - 1) = '\0';
if (strlen(arr + 1) >= 2) {
reverse_string(arr + 1);
}
*(arr + len - 1) = temp;
}
int main() {
char arr[] = "abcdefg";
reverse_string(arr);
printf("%s", arr); // gfedcba
return 0;
}
倒序字符串指针法:
#include <stdio.h>
#include <string.h>
void reverse_string(char *arr) {
int len = strlen(arr);
char* left = arr;
char* right = arr + (len - 1);
char temp;
while(left < right) {
temp = *left;
*left = *right;
*right = temp;
left++;
right--;
}
}
int main() {
char arr[] = "abcdefg";
reverse_string(arr);
printf("%s", arr); // gfedcba
return 0;
}
阅读全文