面试编程题笔记
来源:互联网 发布:ps cs3 mac版 编辑:程序博客网 时间:2024/06/05 14:54
微软:将一个字符串转为整数
初版:
int StringToInt(char*str)
{
int nInt = 0;
while (*str != 0)
{
nInt = (nInt * 10) + (*str -'0');
++str;
}
return nInt;
}
int _tmain(int argc,_TCHAR* argv[])
{
char* strTestNum = "123456";
char* strNull = NULL;
cout << "测试转化1:" << StringToInt(strTestNum) << endl;
cout << "测试转化2:" << StringToInt(strNull) << endl;
return 0;
}
传入空指针则程序崩溃。
注意点:对于函数传入参数,需要考虑其特殊的输入,然后进行相应的处理。
最终版:
#include <iostream>
using namespace std;
int StringToInt(char*str)
{
// 空指针
if (NULL ==str)
{
return -1;
}
// 负数
bool bNegative = false;
if (*str =='-')
{
bNegative = true;
++str;
}
int nInt = 0;
while (*str != 0)
{
// 含有特殊字符
if ((*str <'0') || (*str >'9'))
{
return -1;
}
nInt = (nInt * 10) + (*str -'0');
++str;
}
if (bNegative)
{
return -nInt;
}
return nInt;
}
int _tmain(int argc,_TCHAR* argv[])
{
char* strTestNum1 = "123456";
char* strTestNum2 = "-123456";
char* strTestNum3 = "12c456";
char* strNull = NULL;
cout << "测试转化(正常):" << StringToInt(strTestNum1) << endl;
cout << "测试转化(负数):" << StringToInt(strTestNum2) << endl;
cout << "测试转化(特殊字符):" << StringToInt(strTestNum3) << endl;
cout << "测试转化(空指针):" << StringToInt(strNull) << endl;
return 0;
}
- 面试编程题笔记
- java面试编程题
- java 面试编程题
- java面试编程题
- 面试编程题
- 面试编程题
- Java 面试编程题
- 华为面试编程题
- Python面试--编程题
- Unity面试编程题
- 面试编程题1
- 面试编程题
- 常见面试编程题
- java面试编程题
- 面试编程题
- 面试指南 笔记(二) 编程规范
- 面试指南 笔记(二) 编程规范
- 面试笔记9(面对对象编程)
- QT 4.8 静态库编译方法
- SPFA算法 蓝桥杯 单源最短路径(含负权)
- 面试算法①——转圈打印矩阵
- Skin++程序发布问题
- 设计模式->创建型模式->抽象工厂模式
- 面试编程题笔记
- 电工学(上)-电工技术 秦曾煌(7版)
- S-Trees UVA712(二叉树)
- 2017年新开博客
- img vs background-img
- cf566f
- 算法中效率问题
- 1053 正弦函数
- Mybatis执行过程