strlen的几种不同实现方法
int strlen(const char *str)
{
assert(str != NULL);
int len = 0;
while((*str++) != ‘ ′)
len++;
return len;
}
第二种方法:
int strlen(const char *str)
{
assert(str);
const char *p = str;
while(*p++); /*use addresses to count the length of str*/
return p – str – 1;
}
第三种方法:
int strlen(const char* str)
{
if (str[0] == ‘ ′)
return 0;
else
return strlen((char *)(&str[0]+1))+1; /*iteration*/
}
ANSI C标准中的说法摘录如下: (1)当一个数组标识符出现在表达式中,这个标识符的类型就从“某种类型T的数组”转换成“指向类型T的指针”,而且它的值就等于数组第一个元素的地址。但是当数组标识符被用作sizeof和取址(&)操作的操作数时,sizeof返回的是整个数组的大小,而取址操作返回的是指向数组的指针(而不是指向一个值为数组头元素地址的指针的指针)。(2)下列表达式不能产生lvalue: 数组名,函数,枚举常量,赋值表达式,强制类型转换,函数调用。
{
assert(str != NULL);
int len = 0;
while((*str++) != ‘ ′)
len++;
return len;
}
第二种方法:
int strlen(const char *str)
{
assert(str);
const char *p = str;
while(*p++); /*use addresses to count the length of str*/
return p – str – 1;
}
第三种方法:
int strlen(const char* str)
{
if (str[0] == ‘ ′)
return 0;
else
return strlen((char *)(&str[0]+1))+1; /*iteration*/
}
ANSI C标准中的说法摘录如下: (1)当一个数组标识符出现在表达式中,这个标识符的类型就从“某种类型T的数组”转换成“指向类型T的指针”,而且它的值就等于数组第一个元素的地址。但是当数组标识符被用作sizeof和取址(&)操作的操作数时,sizeof返回的是整个数组的大小,而取址操作返回的是指向数组的指针(而不是指向一个值为数组头元素地址的指针的指针)。(2)下列表达式不能产生lvalue: 数组名,函数,枚举常量,赋值表达式,强制类型转换,函数调用。
【strlen的几种不同实现方法】相关文章
2. Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
3. String、StringBuffer、StringBuilder有区别
4. 若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedExcepti
5. String s = new String(“xyz”);创建了几个String Object?
6. 声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
7. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
9. 实现strstr功能,即在父串中寻找子串首次出现的位置
10. 有abstract方法的类一定要用abstract修饰吗
本文来源:https://www.mianshiwenti.com/a13127.html
进入下载页面
上一篇:威盛公司软件C++工程师笔试题面试题
下一篇:雅虎笔试题(字符串操作)
﹝strlen的几种不同实现方法﹞相关内容
- 请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
- 不同浏览器创建XMLHttpRequest方法有什么不同
- 说一下mysql, oracle等常见数据库的分页实现方案
- Oracle左连接和右连接实现方式
- Java里面StringBuilder和StringBuffer有什么区别
- String和StringBuffer的区别
- string = null 和string = \'\'的区别
- Can a struct inherit from another struct? (结构体能继承结构体吗)
- StringBuilder和String的区别
- iostream与iostream.h的区别