C语言 day10

2022-06-13  本文已影响0人  y_7539

栈区内存的使用习惯是先使用高地址空间,再使用低地址空间

void my_str(char* des, char* src)
{
    while (*des++=*src++)
    {
        ;
    }
}

//写一个strcpy
int main()
{
    char arr1[] = "xxxxxxxxxxxx";
    char arr2[] = "hello";
    my_str(arr1, arr2);
    printf("%s", arr1);
}

const修饰指针变量

const int * p :放在的左边,修饰的是p,表示指针指向的内容不能通过指针来改变的。但是指针变量本身可以修改
int * const p:放在*的右边,表示指针变量不可以修改,指针指向的内容可以修改

#include <assert.h>
size_tmy_strlen(const char *str)
{
    assert(str != NULL);
    size_t len = 0; //无符号整型
    while (*str++)
    {
        len++;
    };
    return len;
}


//写一个strlen
int main()
{
    char c[] = "abc";
    int len = my_strlen(c);
    printf("%d", len);
}
void reverse(char* left, char *right)
{
    while (left < right)
    {
        char temp = *left;
        *left = *right;
        *right = temp;
        left++;
        right--;
    }

}



//字符串逆序
int main()
{
    //全部字符串逆序
    char arr[100] = {0};
    gets(arr);
    int len = strlen(arr);
    reverse(arr, arr + len - 1);
    //printf("%s\n", arr);
    //空格隔开的字符逆序
    char* start = arr;
    while (*start)
    {
        char* end = start;
        while (*end != ' ' && *end != '\0')
        {
            end++;
        }
        reverse(start, end-1);
        if (*end=' ')
        {
            start = end + 1;
        }
        else
        {
            start = end;
        }
    }
    printf("%s", arr);

}
上一篇 下一篇

猜你喜欢

热点阅读