c语言求字符串长度,的函数理解?
intstrlen(char*s){char*t=s:while(*t++):returnt-s-1:}这个应该怎样理解?...
int strlen(char*s)
{char*t=s:
while(*t++ ):
return t-s-1:
}
这个应该怎样理解? 展开
{char*t=s:
while(*t++ ):
return t-s-1:
}
这个应该怎样理解? 展开
展开全部
C语言中字符串长度的函数是strlen(),一个字符的长度为1;
函数原型:
unsigned int strlen (char *s);头文件:
#include <string.h>参数说明:s为指定的字符串;
功能说明:strlen()用来计算指定的字符串s 的长度,不包括结束字符'\0';
返回值:返回字符串s 的字符数;
注意:strlen() 函数计算的是字符串的实际长度,遇到第一个'\0'结束。
示例:
#include<stdio.h>#include<string.h>int main(){ char str[] = "ab\nxyz";//\n为回车字符,占一个字节 printf("strlen(str)=%d\n", strlen(str)); return 0;}//输出结果:strlen(str)=6 收起
函数原型:
unsigned int strlen (char *s);头文件:
#include <string.h>参数说明:s为指定的字符串;
功能说明:strlen()用来计算指定的字符串s 的长度,不包括结束字符'\0';
返回值:返回字符串s 的字符数;
注意:strlen() 函数计算的是字符串的实际长度,遇到第一个'\0'结束。
示例:
#include<stdio.h>#include<string.h>int main(){ char str[] = "ab\nxyz";//\n为回车字符,占一个字节 printf("strlen(str)=%d\n", strlen(str)); return 0;}//输出结果:strlen(str)=6 收起
展开全部
while(*t++);这句是核心
*t是指向一个字符的指针,当结束的时候,while判断为否,结束循环,否则,t++指向下一个内存单元。
最后t放在字符串末尾的下一个(字符串末尾的下一个就是第一个'\0')
于是t-s的结果就是字符串的长度加上'\0' 于是再减去1 得到字符串的长度。
*t是指向一个字符的指针,当结束的时候,while判断为否,结束循环,否则,t++指向下一个内存单元。
最后t放在字符串末尾的下一个(字符串末尾的下一个就是第一个'\0')
于是t-s的结果就是字符串的长度加上'\0' 于是再减去1 得到字符串的长度。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-04-29
展开全部
指针t指向的是字符串s的第一个字符,然后指针自增(不断指向下一个字符),同时*t是指这时指针指向的字符,如果不为空字符,说明还没到字符串最后,指针继续自增。当到最后一位时这时由于字符为空,循环退出。这时t-s-1是字符长度了。s是起始位
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
s是字符串开始的地址,t不断向后,直到字符串结尾的‘\0’,因此字符串长度=尾地址-首地址+1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询