数字字符串转换成数值
2016-05-13 15:12
281 查看
留有一个作业,题如下:
完成字符串“12345”转成整数12345
那这个代码,我们怎么实现?
既然学习了字符数组,这个问题就是很简单的问题了。我们可以看一下思路:
首先,它是字符串就需要char型的数组来存储。
其次,既然我们把字符串存到了字符数组中,那么我们就可以一个一个进行数组元素取出操作。
最后,进行对每个元素进行操作。
按照这样的思路,代码如下:
运行结果为:
12345
注意:代码中pow()函数在头文件math.h中,所以需要保护该头文件。
这样就完成了字符串的转换,当然转换的方法有很多种。现在我们再用一种方法来完成,该字符串的转换。
方法二
我们可以直接调用stdlib.h中的库函数完成字符串的转换。
方法三:
仅用自己学过的方法完成。
我们可能认为方法一中pow()函数和方法二中atoi()函数没有学过,那么我们只用学过的知识同样能够完成这样的程序编码。
代码如下:
这样同样能够得出所要求的结果。
供大家参考一下!
完成字符串“12345”转成整数12345
那这个代码,我们怎么实现?
既然学习了字符数组,这个问题就是很简单的问题了。我们可以看一下思路:
首先,它是字符串就需要char型的数组来存储。
其次,既然我们把字符串存到了字符数组中,那么我们就可以一个一个进行数组元素取出操作。
最后,进行对每个元素进行操作。
按照这样的思路,代码如下:
#include <stdio.h> #include <math.h> /* 完成数字字符串的转换,要求转换成对应的整数 */ void main() { char str[] = "12345"; int a[5] = {0}; int b = 0; int c = 1; int i = 0; int j = 0; for(i=0; i < 5; i++) { a[i] = str[i]-'0'; // 转化成数字 } for(i=0,j=4; i < 5; i++,j--) { c = (int)pow(10,j); // 10的i次幂 b = a[i]*c + b; // 转换成整数形式 } printf("b=%d\n",b); }
运行结果为:
12345
注意:代码中pow()函数在头文件math.h中,所以需要保护该头文件。
这样就完成了字符串的转换,当然转换的方法有很多种。现在我们再用一种方法来完成,该字符串的转换。
方法二
我们可以直接调用stdlib.h中的库函数完成字符串的转换。
#include <stdio.h> #include <stdlib.h> /* 完成数字字符串的转换,要求转换成对应的整数 */ /* atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数。 函数原型:int atoi(const char *nptr); 参数 nptr为字符串指针 说明: 参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换, 之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。 包含在头文件stdlib.h中 */ void main() { char str[] = "12345"; int a[5] = {0}; int b = 0; int c = 1; int i = 0; int j = 0; b = atoi(str); // 之间调用atoi标准库函数完成此动作 printf("b=%d\n",b); }
方法三:
仅用自己学过的方法完成。
我们可能认为方法一中pow()函数和方法二中atoi()函数没有学过,那么我们只用学过的知识同样能够完成这样的程序编码。
代码如下:
#include <stdio.h> #include <string.h> /* 完成数字字符串的转换,要求转换成对应的整数 */ void main() { char str[] = "12345"; int a[5] = {0}; int result = 0; int b = 0; int i = 0; int j = 1; int len = 0; len = strlen(str); printf("len= %d\n",len); for(i=len-1; i>=0; i--) { b = str[i]-'0'; // 转化成数字 a[i] = b*j; // 转化成对应的位数,如4是十位上了,则转成40 j*=10; } for(i=0; i < 5; i++) { result = result + a[i]; // 求和操作 } printf("result=%d\n",result); }
这样同样能够得出所要求的结果。
供大家参考一下!
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- C语言实现选择排序、冒泡排序和快速排序的代码示例
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法