C语言逆置字符串的三种方法(含递归)

C语言逆置字符串

第一种:

#include 
#include 
void reverse_str(char * str) {
	int left = 0;
	int right = strlen(str) - 1;
	while (left < right) {
		char temp = str[left];
		str[left] = str[right];
		str[right] = temp;
		left++;
		right--;
	}
}

int main() {

	char arr[] = "abcdefg";
	reverse_str(arr);
	printf("%s" , arr);

	return 0;
}

第二种:

#include 
#include 
// 递归
void reverse_str(char* str) {
	int right = strlen(str) - 1;
	char cur = *str;
	*str = *(str + right);
	*(str + right) = '\0';
	if (strlen(str + 1) >= 2)
		reverse_str(str + 1);
	*(str + right) = cur;
}
int main() {

	char arr[] = "abcdefg";
	reverse_str(arr);
	printf("%s" , arr);

	return 0;
}

第三种:

#include 
#include 
void reverse_str(char* str) {
	int i = 0;
	int len = strlen(str);
	for (i = 0; i < len / 2; i++) {
		char temp = str[i];
		str[i] = str[len - i - 1];
		str[len - i - 1] = temp;
	}
}
int main() {

	char arr[] = "abcdefg";
	reverse_str(arr);
	printf("%s" , arr);

	return 0;
}

你可能感兴趣的:(c语言,算法,开发语言)