|
1鱼币
//Program 5.1.b
#include "stdafx.h"
#include "stdio.h"
int get_integer(char *);
int _tmain(int argc, _TCHAR* argv[])
{
char c[20];
printf("Enter a number: ");
scanf("%s", c);
printf("The number is %d.", get_integer(c));
return 0;
}
int get_integer(char * c)
{
int a = 0, i = 0, n = 0;
char s[20];
for (; *c!=0; c++)
{
if (*c>='0' && *c <='9')
s[n++] = *c;
}
for (; i < n; i++)
a = a * 10 + (s[i] & 15);
return a;
}
问题:
l 。How does the function get_integer get the argument from the call function? What does it return?
2. What is the expression (s[i] & 15) used for? Can you use another expression to replace it?
|
最佳答案
查看完整内容
get_integer () 这个函数实现的是 把数字字符串转换成 一个整数,并返回。
功能是把字符一个个提取出来,如果是'0'~'9'之间的,就保存到一个新的数组里面。
以便为转换成int类型做准备。
(s [ i ] & 15)是把一个'0'~'9'的字符转换成对应的0~9
例: '1'的二进制是 0011 0001
15的 二进制是 0000 1111
'1' 和15 做按位与的操作得 0000 0001
就是十进制的1
同样的 ...
|