簡體   English   中英

不使用strlen()函數,只用一行代碼在c中查找字符串的長度?

[英]Find the length of string in c with just one line of code without using strlen() function?

我想找到是否有任何方法可以在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;
}

我想找到, 如果有任何方法可以在一行代碼中獲得字符串的長度。

你可以簡單地這樣做:

for(len = 0; s[len] != '\0'; len++);

因此,在一行代碼中,您將獲得存儲在len中的字符串長度。

你可以刪除s[len] != '\\0'; 比較縮短:

for(len=0;s[len];len++);

您可以調用strlen()函數來在一行中知道字符串的長度。 它返回一個大小值size_t strlen(char *)

這樣做:

for(len=0;s[len];len++);

這將把長度存儲在len

如果你只想要一行,那么這樣的東西也是可能的:

while (s[len] != '\0') len++;

這只是另一種方式,但不是最令人滿意的。

最小的版本:

#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

我相信,這應該是最短的版本:

for(l=-1;s[++l];);

它是18個字節,因此它是一個非常好的代碼 - 高爾夫答案。 但是,我更喜歡更規范的

for(len = 0; s[len]; len++) ;

在實際代碼中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM