在我的代码中:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZ 256 //arbitrary value
typedef char text_t;
text_t text[SIZ];
text_t *create_text()
{
text_t *c;
strcpy(text,"");
c= text;
return c;
}
int main()
{
text_t *point_to_text;
point_to_text=create_text();
printf("length of the returned pointer")
return 0;
}
我想为point_to_text分配一个长度为零的字符串。我使用strcpy(text,"");
复制一个空字符串。在这种情况下,如何显示文本的长度为零。另外,如果我使用strcpy(text,"abc");
,在这种情况下如何显示长度为3?
答案 0 :(得分:2)
您可以使用
length = strlen(point_to_text);
C中的字符串文字表示存储在由空字符(\ 0)终止的连续内存位置的ASCII字符代码。
strlen()
期望输入是指向由null char(0或&#39; \ 0&#39;)终止的常量char字符串的指针。该函数返回字符串的长度,不包括null char。
答案 1 :(得分:1)
您需要在返回的指针point_to_text
上使用strlen()
。
假设您正在返回正确的字符串 [即空终止],strlen()
将为您提供字符串的长度,即存在的有效元素的数量在字符串中(不包括空终止符)。
你可以做到
printf("length of the returned string is %zu\n", strlen(point_to_text));