c - 通过最后一个 NUL 元素获取字符串的长度

标签 c string

我正在编写一些函数来处理字符串,而不使用 <string.h> ,我通过这样做来获取字符串的长度:

char *str= "Getting the length of this";
int c;
for (c= 0; str[c]!='\0'; c++);

现在c是我的字符串的长度,因此它使处理字符串变得更加容易,但我想知道这是否正确(它可以工作,但可能不是执行此操作的正确方法)。

最佳答案

... i wonder if this is correct

是的,这是正确的。

为了可读性,我更喜欢:

char *str= "Getting the length of this";
int c = 0;
while(str[c]) c++;

但这只是一个品味问题。

请注意,使用 int 作为字符串长度是不常见的。 strlen 函数返回 size_t,因此为了模仿库函数,您还应该使用 size_t,例如:

size_t my_strlen(const char* s)
{
    size_t c = 0;
    while(s[c]) c++;
    return c;
}


char *str= "Getting the length of this";
size_t c = my_strlen(str);

关于c - 通过最后一个 NUL 元素获取字符串的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47120976/

相关文章:

c - C中#符号的使用

ios - '[字符串 ]' is not convertible to ' [NSString]'

php - 在偏移处添加字符串?

php - mysql不通过php将长字符串插入数据库

Python:比较两个字符串保留一端的差异

c - 指针、bison 和 yacc

c - 验证 scanf 条目

arrays - 如何用C实现埃拉托色尼筛法算法?

c++ - 为什么 strlen() 比手动循环检查空终止字符快大约 20 倍?

c++ - 您将如何处理字符串通配符,而不仅仅是比较正确的值?