【发布时间】:2016-08-19 08:56:05
【问题描述】:
这里是一小段代码。
int len(char *str)
{
int count = 0;
while(*str++)
count++;
return count;
}
现在几天前,我发现了一个能够在一行中完成此操作的代码。基本上在 while 的条件下有一些一行代码,它负责查找字符串的长度并返回它。这是脏代码?是的,但它很有趣,所以我想我会尝试使用它,但我似乎不记得它到底是什么。那么有没有办法在一行代码中做到这一点?
编辑: 很抱歉没有提到没有像 strlen 这样的库调用这一事实。这个函数必须是自包含的。
【问题讨论】:
-
size_t length = strlen(str);. -
删除新行,你也可以做到一行!
int len(char*str){int count=0;while(*str++)count++;return count;}现在你只需要弄清楚你用它实现了什么。事实证明,这只会使代码更丑 - 生成的二进制文件将是相同的。 代码行数和程序效率之间几乎没有任何关系。 -
更适合代码高尔夫堆栈交换。
-
return strchr(str, 0) - str; -
请大家关闭这个问题。它不清楚而且太宽泛。而且我们不需要这么多低于标准的
strlen克隆。甚至有人可能认为使用它们是个好主意!
标签: c string string-length