C++实用技巧:字符串转数字及排序算法详解
需积分: 30 172 浏览量
更新于2024-08-25
收藏 479KB PPT 举报
本篇文章主要讲解的是C++中的实用技巧和STL(Standard Template Library)在处理字符串转换为数字方面的应用。首先,作者提到了一个常见的错误示例,展示了如何尝试直接将两个字符串`s1`和`s2`相加,实际上这是将两个字符串拼接,而非进行数值相加,这在C++中是不适用的:
```cpp
string s1 = "1234", s2 = "4321";
cout << s1 + s2; // 输出:12344321,不是数值相加
```
正确地将字符串转换为数字,通常涉及到字符串解析或格式化的过程。在C++中,可以使用`stoi`、`stol`等函数来完成这一任务,这些函数属于`<string>`头文件下的成员函数:
```cpp
#include <string>
#include <iostream>
int main() {
string strNumber = "1234";
int num = stoi(strNumber);
cout << num; // 输出:1234
return 0;
}
```
这里,`stoi`函数接受一个字符串作为参数,将其转换为整数。如果字符串不能被解析为有效的整数,会抛出一个异常。
接下来,文章转到C++的STL部分,介绍了排序算法,尤其是`sort`函数。`sort`函数是C++标准库提供的通用排序算法,可以对容器(如数组或vector)进行排序。默认情况下,它按升序排列元素,但可以通过提供自定义比较函数`comp`来实现降序排序。比如,用于降序排序的`my_comp`函数如下:
```cpp
int my_comp(const int &a, const int &b) {
return a > b; // 返回值1表示a应排在b之后,实现降序
}
```
然后,作者给出了一个完整的示例,演示了如何使用`sort`函数配合自定义的`my_comp`函数从键盘输入10个数并按降序输出:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int a[10];
for (int i = 0; i < 10; ++i) cin >> a[i];
sort(a, a + 10, my_comp);
for (int i = 0; i < 10; ++i) cout << a[i] << ' ';
cout << endl;
return 0;
}
```
本文讲述了C++中将字符串转换为数字的错误方法以及如何使用内置函数正确处理,并重点介绍了如何利用STL中的`sort`函数及其自定义比较功能进行数组的排序操作。这对于提高编程效率和理解C++库的灵活运用具有重要的参考价值。
2021-08-22 上传
2011-12-08 上传
2011-03-25 上传
2010-07-15 上传
2010-11-13 上传
2016-04-15 上传
2010-01-27 上传
2008-12-26 上传
2010-01-20 上传
永不放弃yes
- 粉丝: 915
- 资源: 2万+
最新资源
- 通信基础知识.pdf
- 资源库管理系统用户手册
- android开发环境配置
- Spring+xFire实现webService
- svn结成eclipse详细配置
- visualbasicscript函数介绍
- c语言结构体讲解,TXT格式,适用于初学者,本人也是从网上搜索得到
- 图形学习题(有关图形学考试的)
- makefile书籍
- 如何让你的电脑定时开机
- 图像处理,matlab程序,retinex_frankle_mccann算法加直方图均衡化算法,去雾
- tomcat下配置jsp.doc
- PLSQL常用方法汇总.doc
- vhdl课程设计密码锁 vhdl课程设计密码锁
- Oracle 安装图解.doc
- 最小生成树总结acm竞赛