题目
编写函数实现计算字符串长度的功能(不调用标准库函数 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