华为机试题目
2016-01-12 21:32
309 查看
在网上找了一些华为机试的题目,每日坚持写代码。
1、字符、字符串与数值间的转换
分析:
int i = (ch-48); 这个语句完成了单个字符 ch 转化为数字并存入整型变量 i 的功能。因为字符 0 在 ASCII 码中对应了 48,后面的数值也是以 1 递增,所以用它对应的ASCII码减去48就是这单个字符的整数形式.如此,我们也可以反过来,实现将整型转换成字符:char ch = (i+48);字符串之间的转换,我们不能同时将一个字符串中的所有字符进行转换,不调用外部函数的话,我们只能利用上述这一特性把字符串一个一个的转换。
1、字符、字符串与数值间的转换
分析:
int i = (ch-48); 这个语句完成了单个字符 ch 转化为数字并存入整型变量 i 的功能。因为字符 0 在 ASCII 码中对应了 48,后面的数值也是以 1 递增,所以用它对应的ASCII码减去48就是这单个字符的整数形式.如此,我们也可以反过来,实现将整型转换成字符:char ch = (i+48);字符串之间的转换,我们不能同时将一个字符串中的所有字符进行转换,不调用外部函数的话,我们只能利用上述这一特性把字符串一个一个的转换。
#include <stdio.h> #include <string.h> int StringInt(const char *str) // 将字符串转换为int类型并返回 { int val = 0; int index = ( strlen(str) - 1 ); // 取索引值 int pn = 1; // 表示是正数还是非正数, 正数表示为1, 非正数表示为0 int f = 1, i = 1; // 用于后面的循环 const char *pChar = str; if ('-' == *pChar) { // 判断字符串第一个元素是否为负号 index--; pn = 0; *pChar++; } while (index >= 0) { f = 1; for (i=1; i<=index; i++) f *= 10; val += ( (*pChar++) - 48 ) * f; index--; } if (0 == pn) val *= -1; // 转换为负数 return val; } int main(void) { printf("%d\n", StringInt("333")); printf("%d\n", StringInt("0")); printf("%d\n", StringInt("-0")); printf("%d\n", StringInt("-321")); return 0; } /*参考输出结果:333 0 0 -321 */
相关文章推荐
- 华为路由器密码恢复
- 华为交换机的后缀详解
- 华为手机真机调试设置
- SE100101系统概述
- 华为防火墙配置演示 Quidway SecPath
- 华为防火墙地址转换
- 华为(VRRP-OSPF-STP-SNMP链路聚合)
- S9300做VRRP的配置
- 配置负载分担VRRP
- 华为9306(9300系列)在不删除配置的情况下恢复密码
- 思科和华为交换机常用命令对比学习
- 华为网络技术培训笔记之常用网络工具(一)
- 华为网络技术培训笔记之常用网络工具(二)
- 华为1821路由器qos car+nat+dhcp+vlan配置心得
- 华为交换机-端口由trunk改为access
- 《BT5入门到精通》全动画光盘教程第一时间免费赠送,附赠BT5中文指南V0.9教程.
- 华为工程师70小时戈壁求生的生命笔记
- 华为00e0-fc09-bcf9
- 该死的00e0-fc09-bcf9;该死的华为!
- 华为:Access、Hybrid和Trunk三种模式的理解