题目

编写函数实现计算字符串长度的功能(不调用标准库函数 strlen)。

输入格式:一行输入一个字符串(长度不超过 1000)。

输出格式:输出一个整数,表示该字符串的有效字符长度(不含结束符 \0)。

数据范围与约定:字符串为合法的以 \0 结尾的 C 风格字符串。

思路与算法

1. 字符串底层终止符 \0
C 语言中的字符串是以 ASCII 码为 0 的空字符 '\0' 作为终止标记的字符数组。

2. 计数器自增
指针或下标从首元素开始,while (*p != '\0') { len++; p++; },直到遇到结束符终止,返回累计计数值。

完整程序

#include <stdio.h>

// 实现 strlen 核心逻辑:利用指针不断后移直到指向 '\0'
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