获取字符数组的长度

时间:2014-09-01 23:48:40

标签: c arrays char

我知道有关此主题的其他问题,但我找不到一个我正在寻找的内容。我正在学习C课程并遇到了以下挑战:“创建一个新应用程序并创建四个字符数组 保留以下几行文字:

'玫瑰是红色的。 紫罗兰是蓝色的。 C编程很有趣。而且有时让我的头受伤。 确保您的字符数组足够大 容纳用于终止C字符串的字符。 使用格式正确的printf()命令和能指, 输出字符串数组值。 “

这是我到目前为止的代码:

#include <stdio.h>

int main()
{

   char firstLine [] = "Roses are red.";
   char secondLine [] = "Violets are blue.";
   char thirdLine [] = "C programming is fun";
   char fourthLine [] = "And sometimes makes my head hurt";
}

有没有办法确定每个字符串中的字符长度,而不是手动计算每个数组中的字符数然后将该数字放在“[]”中?

2 个答案:

答案 0 :(得分:3)

语法:

char str[] = "Some text.";

已经计算了字符串的正确长度。您不必采取任何进一步行动。保留[]为空(在此上下文中)意味着数组具有存储字符串所需的确切大小。

您可以通过执行printf("The size is %zu.\n", sizeof str);来检查这一点,请注意,这比1的{​​{1}}更多,因为字符串具有空终止符。

答案 1 :(得分:1)

基于我的研究,使用strlen

代码:

#include <stdio.h>
#include <string.h>

int main()
{
   char str [] = "Roses are red.";
   size_t len;

   len = strlen(str);
   printf("Length of |%s| is |%zu|\n", str, len);
   return(0);
}

输出:

Length of |Roses are red.| is |14|

来源: http://www.gnu.org/software/libc/manual/html_node/String-Length.html