C语言多种获取字符串长度的方法

作者:小果沐雨 时间:2021-07-01 16:30:29 

在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;
}

结果:

C语言多种获取字符串长度的方法

到此这篇关于C语言多种获取字符串长度的方法的文章就介绍到这了,更多相关C语言获取字符串长度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://blog.csdn.net/st66688/article/details/108356361

标签:C语言,字符串,长度
0
投稿

猜你喜欢

  • C# JsonHelper 操作辅助类,拿来直接用

    2023-11-28 18:55:42
  • 用java在web环境下上传和下载文件的技巧

    2021-06-09 18:17:17
  • Android DatePicker和DatePickerDialog基本用法示例

    2022-08-24 13:33:10
  • Android XML設置屏幕方向(android:screenOrientation)详解

    2021-09-08 09:46:35
  • Java杂谈之类和对象 封装 构造方法以及代码块详解

    2022-03-13 12:38:26
  • javafx实现五子棋游戏

    2022-02-01 07:00:01
  • Java 逻辑控制全面详解

    2022-10-29 09:01:48
  • 浅谈Maven的build生命周期和常用plugin

    2022-11-03 01:47:52
  • 在Linux上运行C#的方法

    2023-03-06 00:28:39
  • hadoop是什么语言

    2021-06-18 07:02:38
  • java内存优化的方法总结

    2022-12-01 22:25:20
  • Java 替换字符串中的回车换行符的方法

    2022-10-05 10:55:22
  • BeanUtils.copyProperties在拷贝属性时忽略空值的操作

    2022-07-11 05:22:04
  • spring boot 集成 shiro 自定义密码验证 自定义freemarker标签根据权限渲染不同页面(推荐

    2023-07-28 17:39:16
  • springboot实现在工具类(util)中调用注入service层方法

    2021-06-17 20:02:51
  • Android 开发之Dialog,Toast,Snackbar提醒

    2021-05-31 14:27:20
  • C语言时间函数之strftime()详解

    2023-06-26 02:42:32
  • java 中死锁问题的实例详解

    2022-08-18 02:22:39
  • Android中的Launch Mode详情

    2022-10-06 02:38:09
  • Spring Boot缓存实战 EhCache示例

    2023-08-30 12:23:35
  • asp之家 软件编程 m.aspxhome.com