Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
全部都想学怎么办
CPP_PrimerPlus
提交
344a7490
C
CPP_PrimerPlus
项目概览
全部都想学怎么办
/
CPP_PrimerPlus
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CPP_PrimerPlus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
344a7490
编写于
3月 28, 2022
作者:
全部都想学怎么办
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
上传新文件
上级
84ed5921
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
48 addition
and
0 deletion
+48
-0
Ch8函数探幽/函数重载/重载示例.cpp
Ch8函数探幽/函数重载/重载示例.cpp
+48
-0
未找到文件。
Ch8函数探幽/函数重载/重载示例.cpp
0 → 100644
浏览文件 @
344a7490
/*
* 本章前面创建了一个left()函数,它返回一个指针,
指向字符串的前n个字符。下面添加另一个left()函数,
它返回整数的前n位。例如,可以使用该函数来查看被存储为整数的、
美国邮政编码的前3位——如果要根据城区分拣邮件,则这种操作很有用。
*/
/*
* 该函数的整数版本编写起来比字符串版本更困难些,
因为并不是整数的每一位被存储在相应的数组元素中。
一种方法是,先计算数字包含多少位。将数字除以10便可以去掉一位,
因此可以使用除法来计算数位。更准确地说,
可以用下面的循环完成这种工作:
*/
unsigned
digits
=
1
;
while
(
n
/=
10
)
{
digits
++
;
}
/*
* 上述循环计算每次删除n中的一位时,需要多少次才能删除所有的位。
前面讲过,n /=10是n=n /10的缩写。例如,如果n为8,
则该测试条件将8/10的值(O,由于这是整数除法)赋给n。
这将结束循环,digits 的值仍然为1。但如果n为238,
第一轮循环测试将n设置为238/10,即23。这个值不为零,
因此循环将digits 增加到2。下一轮循环将n设置为23/10,即2。
这个值还是不为零,因此digits将增加到3。下一轮循环将n设置为2/10,
即0,从而结束循环,而digits被设置为正确的值——3。
*/
/*
* 现在假设知道数字共有5位,并要返回前3位,
则将这个数除以10后再除以10,便可以得到所需的值。
每除以10次就删除数字的最后一位。要知道需要删除多少位,
只需将总位数减去要获得的位数即可。
例如,要获得9位数的前4位,需要删除后面的5位。
可以这样编写代码:
*/
ct
=
digits
-
ct
;
while
(
ct
--
)
{
num
/=
10
;
}
return
num
;
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录