来个大咖解释下为什么我这个代码为什么走不起来啊?(初学者)

来个大咖解释下为什么我这个代码为什么走不起来啊?(初学者)

c++
#include<stdio.h> 
int my_strlen(char *str1)
{
    int number=0;
    while(str1!='\0')
    {
        str1++;
        number++;
    }
    return number;
}

void exange(char *str)
{
    int left=0;
    int right=my_strlen(str)-1;
    while(left<right)
    {
    char temp=str[left];
    str[left]=str[right];
    str[right]=temp;
    left++;
    right--;
    }    
}

int main()
{
    char arr[]="abcdef";
    exange(arr);
    printf("%s\n",arr);
    return 0;
}

代码能走起来,但是屏幕上什么也没有

img

str1是一个指针,应该判断指针所指的元素是否为\0
改成
while(*str1!='\0')

第六行改成
while (*str1 != '\0')


#include<stdio.h> 
int my_strlen(char* str1)
{
    int number = 0;
    while (*str1 != '\0')
    {
        str1++;
        number++;
    }
    return number;
}
void exange(char* str)
{
    int left = 0;
    int right = my_strlen(str) - 1;
    while (left < right)
    {
        char temp = str[left];
        str[left] = str[right];
        str[right] = temp;
        left++;
        right--;
    }
}
int main()
{
    char arr[] = "abcdef";
    exange(arr);
    printf("%s\n", arr);
    return 0;
}