代码之家  ›  专栏  ›  技术社区  ›  Mattia Surricchio

将strlen与scanf一起使用(毫秒)

  •  2
  • Mattia Surricchio  · 技术社区  · 6 年前

    可以用吗 strlen() 在动态分配的字符串上?

    例如 :

    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
      char *input=NULL;
      printf ("Enter a sentence: ");
      scanf("%ms", &input);
      //Is this legit?
      printf ("The sentence entered is %u characters long.\n",(unsigned)strlen(input));
      return 0;
    }
    
    1 回复  |  直到 6 年前
        1
  •  6
  •   alk    6 年前

    你可以用 strlen() 在任何序列上 char s以a结尾 '\0' ,空字符aka NUL *1个 ,实际上等于 0 .

    如何分配内存并不重要。

    是的,这也适用于 动态分配 “记忆。


    *1:不要混在一起 NULL ,这是空指针常量。