题目

实现字符串长度(不用 strlen)

思路

本题自己实现字符串长度,不能调用 strlen

len=0 开始,只要 s[len] != '' 就让 len++;空串时长度为 0。等价写法是用指针从首字符走到 '' 前。

解题分析

长度即遇到 \0 前的字符个数。指针版:while(*s++) n++;下标版:while(s[n]) n++,不要算进终止符。

完整程序

#include <stdio.h>

static int my_len(const char *s)
{
    int n = 0;
    while (*s++) {
        n++;
    }
    return n;
}

int main(void)
{
    char s[1000];
    if (scanf("%999s", s) != 1) {
        return 1;
    }
    printf("%d\n", my_len(s));
    return 0;
}

运行示例

输入:

hello

输出:

5