我想找到是否有办法在C
中找到任何字符串的长度。
这是我的表现:
#include <stdio.h>
int main()
{
char s[10] = "hello";
int i , len = 0;
for(i = 0; s[i] != '\0'; i++)
{
len++
}
printf("length of string is: %d" , len);
return 0;
}
我想找到,如果有任何方法可以在一行代码中获取字符串的长度。
答案 0 :(得分:8)
你可以简单地这样做:
for(len = 0; s[len] != '\0'; len++);
因此,在一行代码中,您将获得存储在 len 中的字符串长度。
答案 1 :(得分:3)
您可以删除s[len] != '\0';
比较以缩短比例:
for(len=0;s[len];len++);
答案 2 :(得分:2)
您可以调用 strlen()函数来在一行中知道字符串的长度。 它返回一个大小值 size_t strlen(char *)
答案 3 :(得分:2)
这样做:
for(len=0;s[len];len++);
这会将长度存储在len
答案 4 :(得分:0)
如果你只想要一行,也可以这样:
while (s[len] != '\0') len++;
这只是另一种方式,但不是最令人满意的。
答案 5 :(得分:0)
最小的版本:
#include <stdio.h>
int main(void)
{
char s[10] = "hello", *p = s;
while(*p++); /* "counting" here */
printf("The length of string '%s' is: %td" , s, p - s);
}
打印:
The length of string 'hello' is: 6
答案 6 :(得分:0)
我相信,这应该是最短的版本:
for(l=-1;s[++l];);
这是18个字节,所以这是一个非常好的代码 - 高尔夫答案。但是,我更喜欢更规范的
for(len = 0; s[len]; len++) ;
以实际代码。