首页 > 试题广场 >

请设计递归函数void reverse(char *s,in

[问答题]

请设计递归函数void reverse(char *s,int len),其功能为逆置长度为len的字符串。例如,若串s的内容为“abcd”,则逆置后其内容变为“dcba”。

发表于 2016-11-22 18:37:45 回复(0)
#include <stdio.h>

void reverse(char *s, int len){
    static int i = 0;
    char c;
    if(i >= len / 2){
        return;
    }
    c = s[i];
    s[i] = s[len-i-1];
    s[len-i-1] = c;
    i++;
    reverse(s, len);
}

int main() {
    char s[] = "abcd";
    reverse(s, 4);
    printf("%s", s);
    return 0;
}

编辑于 2023-12-12 15:55:36 回复(0)
void reverse(char* s, int len) {
	int i = 0;
	while (i<=(len-1-i)) {
		char temp = '0';
		temp = s[i];
		s[i] = s[len - 1 - i];
		s[len - 1 - i] = temp;
		i++;
	}
}
int main() {
	char x[] = "hello worl d a";
	int len=strlen(x);
	reverse(x, len);
	printf("%s", x);
	return 0;

}

发表于 2023-09-23 19:42:37 回复(0)