c语言实现字符串的逆转(多方法)

思路

在这里,我们有两种方式。第一种就是递归,第二种是循环。

我们假设这里有abcde这个字符串存在数组中,我们要做的第一步就是将a拿出来放在一个临时变量里面去,然后再将a替换成e,之后再将最后一个字符换成\0,当字符串长度等于1时停止递归。

循环相对更容易理解一些。我们就是将对称的字符进行交换,所以在循环中我们就让下标加起来为长度减一的成员进行交换即可。

代码

int my_strlen(char* arr)
{
	int count = 0;
	while (*arr!='\0')
	{
		count++;
		arr++;
	}
	return count;
}
void reverse(char arr[])
{
	int len = my_strlen(arr);
	int tmp = arr[0];
	arr[0] = arr[len - 1];
	arr[len - 1] = '\0';
	if (my_strlen(arr) > 1)
		reverse(arr + 1);
	arr[len - 1] = tmp;
}
int main()
{
	char arr[] = "abcdef";
	reverse(arr);
	printf("%s\n", arr);
	return 0;
}

#include
int my_strlen(char* arr)
{
	int count = 0;
	while (*arr != '\0')
	{
		count++;
		arr++;
	}
	return count;
}
void reverse_string(char arr[])
{
	int len = my_strlen(arr);
	for (int i = 0; i < (len/2); i++)
	{
		int tmp = 0;
		tmp = arr[i];
		arr[i] = arr[5-i];
		arr[5 - i] = tmp;
	}
}
int main()
{
	char arr[] = "abcdef";
	reverse_string(arr);
	printf("%s\n", arr);
	return 0;
}

 

祝:“码”思泉涌,下“指”如有神。 

你可能感兴趣的:(c语言,算法,开发语言,学习方法,数据结构)