lzth.net
当前位置:首页 >> C语言strlEn举例 >>

C语言strlEn举例

strlen用来检测字符串长度.\0是转义字符,表示空字符,在这里没有意义,所以输出abcd的长度是4.

原型: int strlen(char *s); 功能: 计算字符串s的长度 举例: #include <string.h> int main() { char *s="Golden Global View"; printf("%s has %d chars",s,strlen(s)); return 0; }

strlen为C语言库函数,包含于string.h中,作用为计算一个字符串(字符数组)中元素的个数,即从数组头部计数,直到遇到字符串结束符\0为止,计数结果不包括\0.其声明为:unsigned int strlen(char *s); 比如定义字符串:char *p = "this is for testing"; 调用 strlen(p); 返回的结果就是p中元素的个数,即19.需要注意的是,strlen并不是绝对安全的,如果在传入的字符数组的合法范围内,不存在结束符\0,那么strlen函数会一直访问下去,超出数组范围,即出现越界访问.所以使用strlen时,程序员必须确认参数字符数组中包含\0值,否则会出现不可预知后果.

char str[]={'a','b','c',0,0};中,你要注意,后面的0没有加引号,就是数字了,0表示acsii码为0的字符,即结束符,遇到0字符串就结束了.所以,只算前面的3个字符. 第二个问题,是因为 , strlen 函数的参数必须是字符型的指针,而 a 是整数型的指针,参数类型不符, 如果int a[5]={1,2,3,4,5}; 改为 char a[5]={'1','2','3','4','5'}; 就能通过编译了,呵呵.

//size_t strlen(const char*) int len=strlen("匿名"); cout

strlen是测量字符串长度的 char d[]={'c','h','i','n','a','\0'}和char a[]="china"; char b[]={"china"}; 是等价的 是数组的表示形式 而char c[]={'c','h','i','n','a'};却是字符数组所以并不能得到结果

操作编码如下:int strlen(char *p) { int i=0; while(*p++)i++; return i; }#include <stdio.h>#include <string.h> void main() { char x[3]={0}; x[0]='a'; x[1]='b'; x[2]='c'; int len=strlen(x); printf("%c %d \r\n",x[6],len); }

strlen是库函数,计算字符串长度.sizeof是操作符,计算变量长度.

strlen可以计算空格的 可能因为你的字符串是用scanf输入的吧 scanf会把空格后面的忽略掉 改称gets()就好了

今天偶然看到了一个实现strlen函数的方法,也实际练习了一下,挺有意义的,其实现的一些思想值得学习,记录一下吧.我这里除了写两个比较巧妙的递归实现之外,也写了另外一种常规的方式. 传说常见的一个笔试题:不使用中间变量求

4405.net | wwfl.net | ddng.net | lstd.net | zdly.net | 网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com