笔试题: 不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数
2016-06-05 10:12
295 查看
笔试题:
不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数。
函数接口声明如下:int my_strlen(const char *p);
strlen函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符'\0'。
而返回的长度大小不包括'\0'。#include <stdio.h>
#include <assert.h>
//使用中间变量
//int my_strlen(const char *str)
//{
// assert(str);
// int count = 0;
// while (*str++)
// {
// count++;
// }
// return count;
// }
//递归方法(不使用中间变量)
int my_strlen(const char *str)
{
if (*str == '\0')
{
return 0;
}
else
{
return 1 + my_strlen(str + 1);
}
}
int main()
{
char str[] = {0};
gets(str);
int len = my_strlen(str);
printf("%d\n", len);
system("pause");
return 0;
}
不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数。
函数接口声明如下:int my_strlen(const char *p);
strlen函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符'\0'。
而返回的长度大小不包括'\0'。#include <stdio.h>
#include <assert.h>
//使用中间变量
//int my_strlen(const char *str)
//{
// assert(str);
// int count = 0;
// while (*str++)
// {
// count++;
// }
// return count;
// }
//递归方法(不使用中间变量)
int my_strlen(const char *str)
{
if (*str == '\0')
{
return 0;
}
else
{
return 1 + my_strlen(str + 1);
}
}
int main()
{
char str[] = {0};
gets(str);
int len = my_strlen(str);
printf("%d\n", len);
system("pause");
return 0;
}
相关文章推荐
- strlen和sizeof的区别和联系
- 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
- 递归实现 n的k次方
- 冒泡排序
- 参数传递 可变长参数函数
- 如何让网页大小自适应的JS代码
- 递归实现 参数字符串中的字符反向排列
- __FILE__ __DATE__ __TIME__ __LINE__
- 宏、函数、宏和函数的区别
- assert用法
- C++ Assert()断言机制原理以及使用
- 折半查找(二分查找)
- 位运算小结(按位与、按位或、按位异或、取反、左移、右移)
- C和C++语言中基本的数据类型
- C语言 实现一个函数,判断一个数是不是素数
- C语言 实现一个函数判断year是不是润年
- C语言 使用函数实现两个数的交换
- 创建一个数组, 实现数组初始化、数组清空以及数组元素的逆置
- Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能
- C语言输出数组的三种方法