WY c语言进阶

1)字符串函数strlen的实现

#include <stdio.h>
#include <string.h>

size_t mylen(const char* s)
{
    int cnt = 0;
    int idx = 0;
    while (s[idx] != '\0' ){
        idx++;
        cnt++;
    }
    return cnt;
}

int main(int argc, char const *argv[])
{
    char line[] = "HELLO";
    printf("strlen=%lu\n", mylen(line));
    
    return 0;
    
}


2)strcpy 函数实现

char* mycpy(char* dst, const char* src)
{
    char* ret = dst;
    while(*src != '\0'){
        *dst++ = *src++;
    }
    *dst ='\0';
    
    return rest;
}

 3)可变函数的实现

#include "array.h"

Array array_create(int init_size){

    Array a;
    a.array = (int*)malloc(sizeof(int)*int_size);
    a.size = int_size;

    return a;
}//创建 
void array_free(Array *a){

    free(a->array)array;
    a->size = 0;
    a->array= NULL;

}//释放 
int array_size(const Array *a){
    
    return a->size;
    
}//返回大小 //封装 
int* array_at(Array *a, int index){
    
    return &(a->array[index]);
    
}//访问注意需要返回指针类型 
void array_inflate(Array *a, int more_size){
    int *p = (int*)malloc(sizeof(int)(a->size + more_size));
    int i;
    for ( i=0; i<a->size; i++){
        p[i] = a->array[i];
    }
    free(a->array)array;
    a->array = p;
    a->size += more_size;
} //增长 

 

posted @ 2017-05-06 17:56  YS云澄  阅读(218)  评论(0编辑  收藏  举报