C 获取字符串长度

C语言中,想要获取字符串长度可以有很多方法,下面分别介绍

一、使用sizeof()运算符

在C语言中,sizeof() 是长度的运算符,括号中可以放入数据类型或者表达式,一般我们用来计算字符串长度。

基本用法:

int i=10;
sizeof(i);//表达式

char str[]=”hello world”;
sizeof(str);

sizeof(double);//数据类型

在使用sizeof()求字符串长度时,会将 ‘\0′ 也计算到字符串长度中。例如”abcd”用sizeof()求长度会计算得到5。
注意:char str[100]=””; sizeof(str)的值是100。

二、使用strlen函数

在string.h中提供了计算字符串长度的函数。

语法:size_t strlen(const char *str);

在使用strlen函数时,需要添加string.h头文件,该函数会将字符串长度计算出,不包含 ‘\0’。

三、编写函数

如果不想使用sizeof()和strlen(),可以利用循环来判断字符串的长度。

int get_length(char str[])
{
char *p = str;
int count = 0;
while (*p++ != ‘\0’)
{
count++;
}
return count;
}

该函数通过传入一个字符串,返回一个长度数值。

测试代码:

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

int get_length(char str[])
{
char *p = str;
int count = 0;
while (*p++ != ‘\0’)
{
count++;
}
return count;
}

int main()
{
char str[] = “abcd”;
int count1 = sizeof(str);
int count2 = strlen(str);
int count3 = get_length(str);
printf(“use sizeof the length is %d\n”, count1);
printf(“use strlen the length is %d\n”, count2);
printf(“use get_length the length is %d\n”, count3);
return 0;
}