-
2022-01-10 16:22:32
1、c语言sizeof()和strlen(char *a)(注:c语言没有string类型的数据)
strlen()需要头文件<string.h>,该函数参数必须是字符型指针(char*),从代表该字符串的第一个地址开始遍历,直到遇到结束符'\0'。返回的长度大小不包括'\0'。
#include<stdio.h> #include<string.h> int main(){ char a[100]; int k=0; gets(a); int len=strlen(a); printf("%d",len); return 0; }
sizeof()不要头文件,该函数只能计算静态数组所占空间,是运算符。
char ss[] = "0123456789";
sizeof(ss)为11,ss是数组,计算到'\0'位置,因此是(10+1)
char ss[100] = "0123456789";
sizeof(ss)为100,ss表示在内存中预分配的大小,100*1
2、c++语言string中L.length()和L.size()没区别,都必须加入头文件<string>,能连空格一起计算直到‘\n’
#include<iostream> #include<string> using namespace std; int main(){ string a="sg fd"; int len=a.length(); cout<<len<<endl; return 0; }
输出5。
更多相关内容 -
C++取字符串长度函数三种方法
2021-09-05 09:57:14C++取字符串长度函数三种方法 实例代码 #include <iostream> #include <cstring> //调用strlen()函数需要使用该文件 using namespace std; int main() { string str = "Test string"; char *ch = ...C++取字符串长度函数三种方法 实例代码
#include <iostream> #include <cstring> //调用strlen()函数需要使用该文件 using namespace std; int main() { string str = "Test string"; char *ch = (char *)"perseverance51"; //需要强制类型转换 char const *ch2 = "Are you OK!"; cout << str.size() << endl; cout << str.length() << endl; cout << strlen(ch) << endl; cout << strlen(ch2) << endl; return 0; }
- 打印结果
- 打印结果
-
C++不使用变量求字符串长度strlen函数的实现方法
2020-12-26 05:13:11本文实例讲述了C++不使用变量求字符串长度strlen函数的实现方法。分享给大家供大家参考。具体实现方法如下: 1、strlen的源码实现: size_t strlen(const char *str) //strlen不做内存非法判断,如果是NULL,会... -
C/C++计算字符串的长度
2019-10-07 18:09:15C/C++语言计算字符串长度 1.自定义函数求长度 2.使用strlen()函数 3.使用sizeof()操作符 4.使用length()函数 利用自定义函数的方法: int cont_str(char *s) { int i = 0; while ( str[i++] != '\0') ; return i; ...C/C++语言计算字符串长度
1.自定义函数求长度
2.使用strlen()函数
3.使用sizeof()操作符
4.使用length()函数
利用自定义函数的方法:int cont_str(char *s) { int i = 0; while ( str[i++] != '\0') ; return i; }
利用string头文件中的strlen()函数:
strlen(str); //假设str为待求的字符串数组名
使用sizeof()操作符
sizeof(str)/sizeof(str[0]); //假设str为待求的字符串数组名
使用length()函数
char a[10] std::cin>>a; length=a.length()
注意:
- strlen()函数求出的字符串长度为有效长度,既不包含字符串末尾结束符 ‘\0’;
- sizeof()操作符求出的长度包含字符串末尾的结束符 ‘\0’;
- length()函数求出的字符串长度不包含字符串末尾结束符’\0’;
- 当在函数内部使用sizeof()求解由函数的形参传入的字符数组的长度时,得到的结果为指针的长度,既对应变量的字节数,而不是字符串的长度,此处一定要小心。
- C/C++的strlen(str)和str.length()和str.size()都可以求字符串长度。其中str.length()和str.size()是用于求string类对象的成员函数,strlen(str)是用于求字符数组的长度,其参数是char*。
- 这三种函数strlen、length、size函数计算的字符串长度都不算最后的操作符’\0’。
- strlen函数用之前需要先对字符数组定义,例如char str[]={“hello world”};或者char str[]={‘h’,‘e’,‘l’,‘l’,‘o’,’ ‘,‘w’,‘o’,‘r’,‘l’,‘d’,’\0’};
- getchar()就是从键盘获取字符,直到回车为止。
第一种:strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个’\0’,如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到’\0’停止。
第二种:sizeof(),求所占总空间的字节数。
strlen函数用法见下链接:
https://blog.csdn.net/u012209626/article/details/47449885
cin.get()函数、cin.getline()函数、getline()函数、gets()函数、getchar()函数用法见下链接:
https://www.cnblogs.com/qiang-wei/p/9332201.html -
C++获取字符串长度的几个函数方式
2021-05-19 07:54:31C/C++ strlen(str)、str.length()、str.size()、sizeof(str)都可以求字符串长度。其中str.length()、str.size()、sizeof(str)是用于求string类对象的成员函数strlen(str)是用于求字符数组的长度,其参数是char*。...C/C++ strlen(str)、str.length()、str.size()、sizeof(str)都可以求字符串长度。
其中str.length()、str.size()、sizeof(str)是用于求string类对象的成员函数
strlen(str)是用于求字符数组的长度,其参数是char*。
补充知识:获取字符串长度的函数sizeof()、strlen()、length()、size()详解和区别
在C++中计算长度的函数有四种,它们分别是sizeof() ,size(),strlen(),str.length()。
一. sizeof()和strlen()两者区别:
1)sizeof操作符的结果类型是size_t,该类型保证能容纳实现所建立的最大对象的字节大小。
2)sizeof是运算符,strlen是函数。
3)sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。
4)sizeof在编译时期就计算出来,strlen在运行之后才能计算出来。
5)strlen计算字符串的具体长度(只能是字符串),不包括字符串结束符。返回的是字符个数。sizeof计算声明后所占的内存数(字节大小),不是实际长度。
举例:
1)char* ss = "0123456789";
sizeof(ss)为4,ss是指向字符串常量的字符指针,sizeof 获得的是指针所占的空间,则为4
sizeof(*ss)为1,*ss是第一个char字符,则为1
2)char ss[] = "0123456789";
sizeof(ss)为11,ss是数组,计算到'\0'位置,因此是(10+1)
sizeof(*ss)为1,*ss是第一个字符
3)char ss[100] = "0123456789";
sizeof(ss)为100,ss表示在内存中预分配的大小,100*1
strlen(ss)为10,它的内部实现用一个循环计算字符串的长度,直到'\0'为止。
4)int ss[100] = "0123456789";
sizeof(ss)为400,ss表示在内存中预分配的大小,100*4
strlen(ss)错误,strlen参数只能是char*,且必须是以'\0'结尾
5)char[] a={'a','b','c'};
sizeof(a)的值应该为3。
char[] b={"abc"};
sizeof(b)的值应该是4。
6)若string str={'a','b','c','\0','X'};
那么sizeof(str)为5,strlen(str)为3。
二. string中的length()和size()
c++中,在获取字符串长度时,size()函数与length()函数作用相同。
例如:string str = “wang”
则,str.length() = 4。
除此之外,size()函数还可以获取vector类型的长度。
例如:vector < int> num(15,2)
则,num.size() = 15。
以上这篇C++获取字符串长度的几个函数方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
-
检测含有中文字符串的实际长度
2021-01-01 21:29:39我们在实际过程中要经常去检测含有中文字符串的实际长度, 因为中文字符,和英文字符在一起的话.判断起来你麻烦点. 原理跟在asp中的一样.逐个去判断.是中文加2英文加1. 代码如下:ASCIIEncoding n = new ... -
C++获取字符串长度的几个函数(亟待完善)
2019-05-08 15:46:00C/C++ strlen(str)、str.length()、str.size()、sizeof(str)都可以求字符串长度。 其中str.length()、str.size()、sizeof(str)是用于求string类对象的成员函数 strlen(str)是用于求字符数组的长度,其参数是char*... -
C++获取字符串长度的几个函数
2018-03-17 08:22:14C/C++ strlen(str)、str.length()、str.size()、sizeof(str)都可以求字符串长度。其中str.length()、str.size()、sizeof(str)是用于求string类对象的成员函数strlen(str)是用于求字符数组的长度,其参数是char*。... -
C++中可正确获取UTF-8字符长度的函数分享
2020-12-31 13:58:50现在假设一串输入为UTF8编码,如何能准确的定位到每个UTF8字符的“CharPoint”,而不会错误的分割字符呢? 参考这个页面:http://www.nubaria.com/en/blog/?p=289 可以改造出下面的函数: const unsigned char ... -
c/c++ 计算字符数组/字符串长度
2020-04-21 12:47:371.自定义函数求长度 2.使用strlen()函数 3.使用sizeof()操作符 4.使用length()函数 利用自定义函数的方法: int cont_str(char *s) { int i = 0; while ( str[i++] != '\0') ; return i; } 利用string头文件中的... -
C++常用字符串长度计算函数
2013-12-29 06:03:26常见的获取字符串长度的方法包括如下几种。 1.使用sizeof获取字符串长度sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符\0)。对于ANSI字符串和UNICODE字符串,形式如下: sizeof(cs)/sizeof... -
C语言编写一个计算字符串长度的函数 my_strlen();
2021-05-10 08:27:21C语言编写一个计算字符串长度的函数 my_strlen(); 我的思路: 定义一个变量,从0计算,直到字符串遇到’\0’时结束。 #include<stdio.h> void my_strlen(char *str); int main() { char str[100]={0}; ... -
C/C++中计算字符串数组长度方法
2021-11-24 20:53:02C/C++中计算字符串数组长度方法: int len = sizeof(array)/sizeof(array[0]) 注意:字符串数组作为擦参数传递给其他函数时,对方函数中sizeof(array)返回值始终未4, 所以,如果一定要通过函数处理数组时,必须把数组... -
【C++基础编程】#017 计算字符串长度:length(), size(), strlen()介绍
2020-06-02 13:49:42本文介绍如何计算字符串长度,共介绍三种方法,分别用length(), size(), strlen()实现 文章目录length()介绍size()介绍strlen()介绍 length()介绍 利用length()函数时,直接用字符串调用函数即可,格式如下: string... -
c++怎么获取字符串长度?
2021-05-21 00:59:04C++获取字符串长度strlen()函数函数 strlen()是一个常规函数,他接受一个 C-风格字符串作为参数,并返回字符串包含的字符数。 参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。... -
c/c++-计算含有汉字的字符串长度
2020-04-07 10:49:17编写get_lenth函数,计算含有汉字的字符串长度,一个汉字为两个字节处理;已知:汉字编码为双字节,其中只要首字节首字节<0,就一定是个汉字。 include <iostream> using std::cout; int get_lenth(char ... -
c++如何获取字符串长度
2021-04-24 14:50:03直接获取字符串长度,包括空格在内 2.strlen()函数 需要添加头文件<string.h>,而且参数只能是char数组 而且结尾必须是\0(即字符数组不能满,因为满了结尾就不是\0,会接着向下检索到\0为止) 啊哦char c[6]{... -
C语言中计算字符串长度的函数
2017-07-09 15:33:291. strlen函数求得的字符串长度是从字符串第一个元素到第一个'\0'之间元素的个数(如果字符串中间有'\0',则结果不是整个字符串的长度),同时不包括该'\0' 2. sizeof求得的结果是存储该字符串的变量占用的空间大小,... -
c++读取字符串和字符的6种函数
2021-08-30 21:19:12字符串或字符的输入有好多个函数,scanf、getline()、cin.getline()、cin.get()、gets()、getchar()等 如果输入是不带空格的字符串,那用什么都可以了,建议用scanf或cin 如果输入带空格,那scanf、cin就用不了了,... -
常用字符串长度计算函数
2017-05-09 08:50:47常见的获取字符串长度的方法包括如下几种。 1.使用sizeof获取字符串长度 sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符\0)。对于ANSI字符串和UNICODE字符串,形式如下: sizeof(cs)/sizeof... -
C语言程序设计-编写一个程序,求字符串的长度,不能使用strlen函数。
2021-05-26 16:32:50编写一个程序,求字符串的长度,不能使用strlen函数。 (代码提示:i=0;while(s[i]!= '\0')i++; 则最后i的值就是字符串长度) -
计算字符串长度函数大全
2012-08-08 19:01:58常见的获取字符串长度的方法包括如下几种。 1.使用sizeof获取字符串长度 sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符\0)。对于ANSI字符串和UNICODE字符串,形式如下: sizeof(cs)/... -
C++获取字符串长度详解
2019-08-12 13:04:26String 类型对象包括三种求解字符串长度的函数:size() 和 length()、 maxsize()和 capacity(): size() 和 length():这两个函数会返回 string 类型对象中的字符个数,且它们的执行效果相同。 max_size():max_... -
C++字符串长度获取方法
2017-02-21 20:52:16C/C++ strlen(str)和str.length()和str.size()都可以求字符串长度。 其中str.length()和str.size()是用于求string类对象的成员函数 strlen(str)是用于求字符数组的长度,其参数是char*。 -
自己写一个函数计算字符串数组长度(C语言)
2021-10-18 20:58:59#include <stdio.h> int main() { char arr[]="bit"; int len=0; len = my_strlen(arr); printf("len=%d",len); return 0; } int my_strlen(char * str) { int count=0; while(*str!... . -
c++利用指针求字符串数组长度
2020-05-25 16:28:40#include<..."请输入一串字母(不能含有空格以回车结束):"<<endl; cin>>A; int b; b=lenth(A); cout<<"输入字母长度为"<<b<<"个"<<endl; return 0; } int l -
C语言编写函数求字符串长度的几种实现方法
2022-01-23 10:28:05我们都知道在C语言标准库string.h中有一个strlen()函数可以求得字符串长度,那么如果让我们自己写一个这样的函数如何去写呢?下面介绍三种实现的方法。 一、使用计数器的方法 所谓计数器方法,顾名思义,就是创建一... -
strlen 和 sizeof 计算字符串长度的区别
2021-10-18 17:15:51两者区别 sizeof操作符的结果类型是size_t,它在头文件中typedef为...sizeof计算的是变量的大小,而strlen计算的是字符串的长度,前者不受字符’\0’影响,后者以’\0’作为长度判定依据 测试代码 int main() { -
c++ 字符串相关函数
2019-03-13 15:30:16c: ...2. 字符串复制 头文件:#include <string.h> 和 #include <stdio.h> 原型声明:char *strcpy(char* dest, const char *src); 函数原型:char *strncpy(ch...