用怎样的流程图模式才能更好实现c语言递归反转字符串如Student反转成tnedutS
以下为详细解答,望采纳
字符串的反转,使用以下流程图模式:
代码实现如下
#include <stdio.h>
#include <string.h>
char *reverse_string(char *str) {
if (strlen(str) == 0) {
return str;
}
char first_char = str[0];
char *substring = str + 1;
char *reversed_substring = reverse_string(substring);
char *reversed_string = malloc(strlen(str) + 1);
sprintf(reversed_string, "%s%c", reversed_substring, first_char);
free(reversed_substring);
return reversed_string;
}
int main(int argc, char **argv) {
if (argc != 2) {
printf("Usage: %s <string>\n", argv[0]);
return 1;
}
char *reversed_string = reverse_string(argv[1]);
printf("%s\n", reversed_string);
free(reversed_string);
return 0;
}