//内容倒过来
my_strlen(char* str)
{
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
void reverse_string(char* str)
{
int left = 0;
//int right = strler(str) - 1;//题目要求不能使用
int right = my_strlen(str) - 1;
while (left<right)
{
char tmp = str[left];//str[left]可以写成指针的形式*(str+left)
str[left] = str[right];
str[right] = tmp;
left++;
right--;
}
str[right];
}
int main()
{
char arr[] = "abcdefg";
reverse_string(arr);
printf("%s\n", arr);
return 0;
}
//用函数递归做 有点难理解
my_strlen(char* str)
{
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
void reverse_string(char* str)
{
char tmp = *str;
int len = my_strlen(str);
*str = *(str + len - 1);
*(str + len - 1) = '\0';
if (my_strlen(str+1)>=2)
{
reverse_string(str + 1);
}
*(str + len - 1) = tmp;
}
int main()
{
char arr[] = "abcdefg";
reverse_string(arr);//数组名arr是数组arr首元素的地址
printf("%s\n", arr);
return 0;
}