【问题标题】:How can I work with an undefined string size in functions in C?如何在 C 中的函数中使用未定义的字符串大小?
【发布时间】:2017-12-02 00:09:50
【问题描述】:

我完全是初学者,不是以英语为母语的人,所以请原谅我的无知。我的作业是在 C 中创建一个比较 char 字符串元素的函数。该函数稍后在 main() 中调用,它应该与具体字符串一起工作。但是这些字符串对于每个条目可能具有不同的大小,因此在函数中定义大小是没有意义的。我需要知道每个字符串的大小,否则我的程序将不知道何时停止。我该如何做到这一点?我最初的想法是使用函数 sizeof()。这会起作用还是解决方案更复杂?谢谢大家的回答!

【问题讨论】:

  • c 字符串以NUL 字符'\0' 终止,因此所有现有的字符串函数都基于这一事实。例如,strlen 通过循环遍历字符串并为它看到的每个字符增加一个计数,直到找到'\0',然后它停止并且计数是长度。
  • 我在上一条消息中指出的是C函数strcmp的代码。
  • “具体字符串”是指字符串字面量(即"I am a string literal")吗?
  • 发布您尝试过的代码会改善这个问题。

标签: c string


【解决方案1】:

sizeof 运算符用于评估以 char 大小存储单元的数量衡量的数据类型或变量的大小。 它在评估字符串的长度时没有用。

为此,您可以使用 C 库 (string.h) 的 strlen() 函数。 strlen() 返回字符串的长度,不包括 null。

您也可以编写自己的函数来计算字符串的长度,如下所示

int stringlen(char str[])
{
  int len=0;
  while(str[i] != '\0')
  {
   len++;
  }
  return len;
}

【讨论】:

    猜你喜欢
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 2019-11-26
    相关资源
    最近更新 更多