Give a string, reverse output

1. Non-recursive:

#include<stdio.h>
#include<string.h>
void reverse_string(char arr[])
{
    
    
	int left = 0;
	int right = strlen(arr)-1;
	while (left < right)
	{
    
    
		char tmp = arr[left];
		arr[left] = arr[right];
		arr[right] = tmp;
		left++;
		right--;
	}
}
int main()
{
    
    
	char arr[] = "abcdef";
	reverse_string(arr);
	printf("%s\n", arr);
	return 0;
}

2. Recursion:

#include<stdio.h>
#include<string.h>
void reverse_string(char arr[])
{
    
    
	char tmp = arr[0];
	int len=strlen(arr);
	arr[0] = arr[len - 1];
	arr[len - 1] = '\0';//因为strlen是算出'\0'前的长度
	//中间字符串的逆序
	if(strlen(arr+1)>1)
	    reverse_string(arr + 1);
	arr[len - 1] = tmp;
}
int main()
{
    
    
	char arr[] = "abcdef";
	reverse_string(arr);
	printf("%s\n", arr);
	return 0;
}

Guess you like

Origin blog.csdn.net/qq_45658339/article/details/108269815