题目
实现字符串长度(不用 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