c - 字符串创建问题 C

标签 c string pointers

我想创建一个函数来创建一个具有特定长度的新字符串。 这是代码:

char* newString(int lenght){

    char* newstring =(char*)((calloc(lenght, sizeof(char))));
    newstring[lenght] = '\0';
    return newstring;
}

我是这样使用的:

char* string = newString(10);

我的问题是当我这样做时:

printf("String lenght  %lu \n",strlen(string));

我得到 0,但我不明白为什么。 我是 C 的新手。 感谢您的宝贵时间

最佳答案

strlen 返回第一个 '\0' 之前的字符数。如果您使用:

char s[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int len = strlen(s); // len will be zero.

关于c - 字符串创建问题 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30361496/

相关文章:

c - "arithmetic expressions"是否允许在 C 中用逗号分隔,或者我们需要为每个单独的语句?

java - 线程 "main"java.lang.StringIndexOutOfBoundsException : String index out of range: 4 中的异常

string - 如何转义多字节字符 utf8

c - 所有涉及指针的值和地址之间有什么区别?

c - memcpy() 从较小的数组到较大的数组

java - 如何在UART(atmega16)编码中添加AT命令以向手机发送短信?

string - 字符串的定时安全比较

c - 函数指针帮助/整数指针

c - 将指针传递给函数但指针保持不变

c - printk : too many arguments for format 的 Linux 内核模块错误