将参数字符串中的字符反向排列.
解题思路: 将前后首位的字符串进行换位置即可.
递归实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverse_string(char str[]) {
if (*str) {
int i = strlen(str) - 1;
char temp;
temp = str[0];
str[0] = str[i];
str[i] = '\0';
reverse_string(str + 1);
str[i] = temp;
}
}
int main() {
char str[] = "abcdef";
reverse_string(str);
puts(str);
system("pause");
return 0;
}
非递归
#include <stdio.h>
#include <stdlib.h>
void reverse_string(char str[],int len) {
int i, j;
for (int i = 0, j = len - 1; i < j;i++,j--) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
int main () {
char str[] = "abcdef";
int len = strlen(str);
reverse_string(str,len);
puts(str);
system ("pause");
return 0;
}
**运行结果: **
puts()函数用来向标准输出设备(屏幕)输出字符串并换行,具体为:把字符串输出到标准输出设备,将’\0’转换为回车换行。