字符串(strlen)
【1】求字符串长度函数如何实现?
(1)第一种实现思想:遍历并计数
方法简述:循环遍历每个元素,直至遇到"\0",计数统计。也是最常用的方法,属于惯性思维。
示例代码如下:
1 /* 2 * for循环 3 */ 4 int strlen1(const char *str) 5 { 6 int Length = 0; 7 if (NULL != str) 8 { 9 for ( ;*str++ != '\0';Length += 1); 10 return Length; 11 } 12 return Length; 13 } 14 15 /* 16 * while循环 17 */ 18 int strlen2(const char *str) 19 { 20 int len = 0; 21 if (NULL != str) 22 { 23 while (*str++ != '\0') 24 { 25 len++; 26 } 27 return len; 28 } 29 return len; 30 }
(2)第二种实现思想:指针作差运算
方法简述:用最后“\0”的下一个字符指针值减去第一个指针值,再减去“\0”的一个空间
示例代码如下:
1 int strlen3(const char *src) 2 { 3 if (NULL == src) 4 { 5 return 0; 6 } 7 const char *temp = src; 8 while (*src++ != '\0'); // 本循环结束时,src已经指向了“\0”的下一个字符 9 return (src - temp - 1); // 因此这里必须再减1 10 }
(3)第三种实现思想:递归实现
方法简述:如果遇不到结束符“\0”,我们就义无反顾的追下去......
示例代码如下:
1 int strlen4(const char *str) 2 { 3 if ('\0' == *str) 4 return 0; 5 else 6 return 1 + strlen4(str +1); //标准递归 7 } 8 9 int strlen5(const char *str) 10 { 11 return *str =='\0' ? 0 : 1 + strlen5(str + 1); //三目运算符实现方式 12 }
不断在进步.......
转载于:https://www.cnblogs.com/Braveliu/archive/2012/12/31/2840811.html
字符串(strlen)相关推荐
- 利用标准库sprintf、sscanf函数实现字符串和数字的转换
一.sprintf() 用于将数字转化为字符串 1.将整数转化为字符串 #include<iostream> using namespace std;int main() {char st ...
- 字符串(一):char 数组
字符串使用方法整理 系列: 字符串(一):char 数组 字符串(二):string 1. 声明 如下是一个例子(=> 表示表达式等价): char a[20] = "abcd&quo ...
- c语言1066字符分类统计,C语言字符串操作总结大全(超详细)
1)字符串操作strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字 ...
- c语言怎么独缺非空格字符,C语言-字符串(单个字符)
一.字符串(单个字符)的定义 1.单个字符的定义 char i = 'x' (单个字符的定义) 字符串创建后为常量无法修改 2.一维字符串数组的定义 char i []="xxxx" ...
- C++中数字与字符串之间的转换 scanf string总结(复习必读)
1 string的scanf读入操作 C++里面控制台输入直接使用cin操作就可以了:或者getline(istringstream,string); 字符和数字加减就是字符的ASCII码和数字直接加 ...
- 数组及字符串相关知识
一.数组的知识 Sec1.一维数组 1.数组的引入: 当数据量很多,类型相同需要重复定义的时候,需要用数组简化问题解法. 2.数组的使用 ①定义: 数组类型 数组名 [ 常亮表达式 ] 例如:int ...
- C 和 C++字符串详解
From:http://blog.csdn.net/fenxinzi557/article/details/51457829 From:http://www.cnblogs.com/xFreedom/ ...
- 《C和指针》——C语言字符串操作
字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符 ...
- java字符串反转及替换_字符串的替换(str_replace)
php字符串与字符替换函数 在php教程替换字符效率最高也是最简单字符替换函数str_replace($arr1,$arr2,$str) 实例一 str_replace("iwind&quo ...
- C语言字符串操作总结大全(超详细)
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...
最新文章
- 107. Binary Tree Level Order Traversal II
- leetcode算法题--数值的整数次方
- Java 计算学生的平均成绩
- Spring Mvc + Easyui中根据查询结果导出文件
- 09-LearnTheArchitecture-MemoryManagement
- 2019年, video captioning论文汇总
- AjaxJson笔记(1)
- 试论软件工程学科的交叉性_海外大学所有学科梳理(超大工程,建议收藏)-大学下的硕士一二级学科...
- redhat配置centos的yum源
- Spring应用架构
- linux中如何复制文件并重命名_linux 下怎么复制一个文件到另外一个目录并且重命名...
- 不要假装努力,结果不会陪你演戏!
- python基础for循环和while循环(十)
- hdu1284钱币兑换问题
- Xftp5如何设置默认的文件夹
- 禁用,元素设置为不可点击
- 再复杂的报表,用这3种方式,都能解决!
- ASP.NET与MVC架构区别总结
- Table变量和临时表区别
- 电子科技大学计算机学生水平,近三年的学生评价结果-电子科技大学.DOC
热门文章
- jquery富文本编译器_jQuery 移动端artEditor富文本编辑器
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_16-页面静态化-模板管理-模板制作...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_4_练习_递归打印多级目录...
- python 弧度与角度互转
- jQueru中数据交换格式XML和JSON对比
- javascript对象概念大全
- [面试备忘]数组(一维)最大子串总结
- 学校管理 学生会管理系统(SSM)vue+ssm+shiro
- java提取(获取)博客信息(内容)
- 雷林鹏分享:jQuery EasyUI 菜单与按钮 - 创建链接按钮