用函数求字符串长度c语言,c中求字符串长度的函数

C语言简单函数计算字符串长度

int strlenOwn(const char* psz) /*const使得字符数组不被修改*/

成都创新互联公司是一家集网站建设,江城企业网站建设,江城品牌网站建设,网站定制,江城网站建设报价,网络营销,网络优化,江城网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

{

int len=0;

while( *(psz++) ) //psz加啊加啊最后指到了字符串的最后一个的后面,检测到了"\0"

len++; //(接上)于是乎while检测为false(即检测到0),字符串长len就算出来了

return len;

}

这里面psz++是指针的位移操作,移动指向位置的,字符串常量对于c语言来说就是一种数组嘛

而括号外面的“ * ”是解引用符号,其实意思就是取指针当前位置的值,而不是它的地址。

c语言:编写一个函数求给定字符串长度?

方法一:数组方式

代码如下:

lt;span style="font-size:18px;"gt;#includelt;stdio.hgt;

#includelt;assert.hgt;

int my_strlen(char const*str)

{

int count=0;

assert(str);//断言,判断指针的有效性

while(*str++!=NULL)

{

count++;

}

return count;

}

int main()

{

char arr[30]="trouble is a friend.";

printf("%d\n",my_strlen(arr));

getchar();

return 0;

}lt;/spangt;

运行结果:

方法二:指针方式

说明:当两个指针都指向同一个数组中的元素,指针减指针就是指针与指针之间元素的个数;两个地址相加没有实际意义。

代码如下:

lt;span style="font-size:18px;"gt;#includelt;stdio.hgt;

int my_strlen(char const*str)

{

char const*tmp=str;

while(*str!='\0')

{

str++;

}

return str-tmp;

}

int main()

{

char arr[30]="trouble is a friend.";

printf("%d\n",my_strlen(arr));

getchar();

return 0;

}lt;/spangt;

c语言字符长度函数

正确的答案是5,题目选项有误。

首先strlen()函数返回的长度是不包含'\0',

第一个字符为:a

第二个字符为:b

第三个字符为:\n (换行符)

第四个字符为:2

第五个字符为:\ (\\转义为\)

所以答案为5。

(下图为实际代码演示)

扩展内容:

strlen()函数(C语言函数):

strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。

参考资料:strlen函数 - 百科

c语言,用函数计算字符串长度

getchar()函数的原型是 int getchar( void )

返回值是整型的

功能是:从标准输入中读取一个字符,也就是键盘敲击字符,只接收单个字符

可以用gets()函数来接收多个字符

这里的 s 接收的是该字符的ASCII码,非长度。

如果从原基础上改可以这样

int i;

char s[20]; /*字符串需要长度*/

gets( s );

i = num( s );

int num( char *s ) /* 这里的指针 ,后面学得到*/

{

}

套上去就可以了

C语言中用什么函数可以得到一个字符串的长度?

c语言中获得一个字符串长度的函数是:strlen(),举例如下:

#includestdio.h

#includestring.h

main()

(

char *str="this is a test msg";

printf("%d\n",strlen(str));

getch();

)


网站栏目:用函数求字符串长度c语言,c中求字符串长度的函数
本文路径:http://azwzsj.com/article/hccccj.html