十天学会C语言

第09天C语言(06):指针综合练习

2017-07-12  本文已影响13人  liyuhong
一、概念
/*
 四个知识点
    1.任何数值都有真假性 (1真 0假)
    2.++在前 ++在后的特性 (i++ 先获取之前的值,再自增1 --- ++i 先自增1,在操作)
    3.指针+1是加多少 加上指针类型的所占用的字节(char *p p+1 = p+1 --- int *p p+1 = p + 4)
    4.循环只会执行离他最近的一条语句
 */
二、代码
#include <stdio.h>
#include <string.h>
int myStrlen(char *str);
int myStrlen2(char *str);
int myStrlen3(char *str);
int main()
{
    // 要求自己实现strlen函数
    char *name = "lyh";
//    size_t size = strlen(name);
//    int size = myStrlen(name);
//    int size = myStrlen2(name);
    int size = myStrlen3(name);
    printf("size = %i\n",size);
    return 0;
}

int myStrlen3(char *str)
{
    int count = 0;
    // \0 ASCII码是0 // 0代表假 1真
    while (*str++) count++;
    return count;
}

int myStrlen2(char *str)
{
    int count = 0;
    
    // *str == str[0]
    while (*str++ != '\0') {
        count++;
//        str = str + 1; // 指针+1 相当于指针类型的+1 str = str[1]
//        str++; // ++可以变量名前, 也可以在变量名后
    }
    return count;
}


int myStrlen(char *str)
{
    int count = 0;
    while (str[count] !='\0') {
        count++;
    }
    return count;
}
上一篇下一篇

猜你喜欢

热点阅读