Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 77 additions & 25 deletions 01.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ main()
}
}
}

执行
```
执行结果
```
1 is an apphabetic character
2 is an apphabetic character
3 is an apphabetic character
Expand Down Expand Up @@ -92,8 +93,9 @@ main()
}
}
}

执行
```
执行结果
```
c is an apphabetic character
F is an apphabetic character
D is an apphabetic character
Expand Down Expand Up @@ -147,8 +149,9 @@ main()
}
}
}

执行
```
执行结果
```
125 is an ascii character:}
126 is an ascii character:~
127 is an ascii character:
Expand All @@ -157,7 +160,47 @@ main()
```

---
## isblank
(测试字符是否为空格字符)

**相关函数**
[`isspace`](#isspace)

**头文件**
`#include <ctype.h>`

**定义函数**
`int isblank(int c);`

**函数说明**
检查参数`c`是否为空格字符,也就是判断是否为空格(space)或是定位字符(tab)。空格(space)的ASCII码为32,定位字符(tab)的ASCII码则为9。

**返回值**
若参数`c`为空格字符,则返回`TRUE`,否则返回`NULL(0)`。

**附加说明**
此为宏定义,非真正函数。

**范例**
```/*将字符串str[]中内含的空格字符找出.并显示空格字符的 ASCII码 */
#include <ctype.h>
main()
{
char str[]="123c @# FD sP[e?";
int i;
for(i=0;str[i] !=0; i++)
if (isblank(str[i])) printf("str[%d] is blank character: %d\n",i,str[i]);
}
```

执行结果:
```
str[4] is blank character: 32
str[7] is blank character: 32
str[10] is blank character: 9
```

---
## iscntrl
(测试字符是否为ASCII 码的控制字符)

Expand Down Expand Up @@ -220,8 +263,9 @@ main()
}
}
}

执行
```
执行结果
```
1 is an digit character
2 is an digit character
3 is an digit character
Expand Down Expand Up @@ -269,8 +313,9 @@ main()
}
}
}

执行
```
执行结果
```
str[0] is printable character:a
str[1] is printable character:5
str[3] is printable character:@
Expand Down Expand Up @@ -316,8 +361,9 @@ main()
}
}
}

执行
```
执行结果
```
c is a lower-case character
s is a lower-case character
e is a lower-case character
Expand Down Expand Up @@ -365,9 +411,9 @@ main()
}
}
}

执行

```
执行结果
```
str[0] is printable character:a
str[1] is printable character:5
str[2] is printable character:
Expand Down Expand Up @@ -417,8 +463,9 @@ main()
}
}
}

执行
```
执行结果
```
str[4] is a white-space character:32
str[7] is a white-space character:32
str[10] is a white-space character:9 /* \t */
Expand Down Expand Up @@ -467,10 +514,13 @@ main()
}
}
}

执行
v
@#[?
```
执行结果
```
@
#
[
?
```

---
Expand Down Expand Up @@ -515,8 +565,9 @@ main()
}
}
}

执行
```
执行结果
```
F is an uppercase character
D is an uppercase character
P is an uppercase character
Expand Down Expand Up @@ -564,8 +615,9 @@ main()
}
}
}

执行
```
执行结果
```
1 is a hexadecimal digits
2 is a hexadecimal digits
3 is a hexadecimal digits
Expand Down
131 changes: 113 additions & 18 deletions 02.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ main()
c = atof(a) + atof(b);
printf("c=%.2f\n", c);
}

执行
```
执行结果
```
c=-98.23
```

Expand Down Expand Up @@ -79,8 +80,9 @@ main()
c = atoi(a) + atoi(b);
printf("c=%d\n", c);
}

执行
```
执行结果
```
c=356
```

Expand Down Expand Up @@ -122,11 +124,98 @@ main()
c = atol(a) + atol(b);
printf("c=%d\n", c);
}

执行
```
执行结果
```
c=1234567890
```
---

## ecvt
(将浮点型数转換威宇符串,取四舍五人)

**相关函数**
[`fcvt`](#fcvt), [`gcvt`](#gcvt), [`sprintf`](#sprintf)

**头文件**
`#include <stdlib.h>`

**定义函数**
`char *ecvt (double number, int ndigits, int *decpt, int *sign);`

**函数说明**
`ecvt()`用来将参数 `number`转换成ASCⅢ码字符串,参数`ndigits`表示显示的位数。若转换成功,参数`decpt`指针所指的变量会返回数值中小数点的地址(从左至右算起),而参数`sign`指针所指的变量则代表数值正或负,若数值为正,该返回值则为0,否则为1。

**返回值**
返回一字符串指针,此字符串声明为 static,若再调用`ecvt()`或`fcvt()`,此字符串内容会被覆盖。

**附加说明**
请尽量改用 `sprintf()`做转换

**范例**

```
#include <stdlib.h>
main()
{
double a= 123.45;
double b=-1234.56;
char *ptr;
int decpt, sign;
ptr =ecvt(a, 5, &decpt, &sign);
printf("decept = %d, sign =%d, a value= %s\n",decpt, sign, ptr);
ptr =ecvt(b, 6, &decpt, &sign);
printf("decept = %d, sign =%d, b value= %s\n",decpt, sign, ptr);
}
```
执行结果
```
decept = 3, sign =0, a value= 12345
decept = 4, sign =1, b value= 123456
```
---

## fcvt
(将浮点型数转换为字符串,取四舍五人)

**相关函数**
[`ecvt`](#ecvt), [`gcvt`](#gcvt), [`sprintf`](#sprintf)

**头文件**
`#include <stdlib.h>`

**定义函数**
`char *fcvt(double number, int ndigits, int *decpt, int *sign);`

**函数说明**
`fcvt()`用来将参数 `number`转换成ASCII码字符串,参数 `ndigits`表示小数点后显示的位数。若转换成功,参数 `decpt`指针所指的变量会返回数值中小数点的地址(从左至右算起),而参数`sign`指针所指的变量则代表数值正或负,若数值为正,该传回值则为0,否则为1。

**返回值**
返回一字符串指针,此字符串声明为static,若再调用`ecvt()`或`fcvt()`,此字符串内容会被覆盖。

**附加说明**
请尽量改用 `sprintf()`做转换。

**范例**
```
#include <stdlib.h>
main()
{
double a =123.45;
double b =-1234.567;
char *ptr;
int decpt, sign;
ptr= fcvt(a , 2, &decpt ,&sign); /*小数点后显示2位数 */
printf("decept =%d, sign = %d, a value =%s\n", decpt, sign, ptr);
ptr= fcvt(b , 3, &decpt ,&sign); /*小数点后显示3位数 */
printf("decept =%d, sign = %d, b value =%s\n", decpt, sign, ptr);
}
```
执行结果
```
decept =3, sign = 0, a value =12345
decept =4, sign = 1, b value =1234567
```
---

## gcvt
Expand Down Expand Up @@ -165,8 +254,9 @@ main()
ptr = gcvt(b, 6, ptr);
printf("b value=%s\n", ptr);
}

执行
```
执行结果
```
a value=123.45
b value=-1234.56
```
Expand Down Expand Up @@ -210,8 +300,9 @@ mian()
printf("b=%d\n", strtod(b, NULL, 2));
printf("c=%d\n", strtod(c, NULL, 16));
}

执行
```
执行结果
```
a=1000000000
b=512
c=65535
Expand Down Expand Up @@ -256,8 +347,9 @@ main()
printf("b=%d\n", strtol(b,NULL,2));
printf("c=%d\n", strtol(c,NULL,16));
}

执行
```
执行结果
```
a=1000000000
b=512
c=65535
Expand Down Expand Up @@ -322,8 +414,9 @@ main()
b=toascii(a);
printf("after toascii() : a value =%d(%c)\n",b,b);
}

执行
```
执行结果
```
before toascii() : a value =217()
after toascii() : a value =89(Y)
```
Expand Down Expand Up @@ -366,8 +459,9 @@ main()
s[i]=tolower(s[i]);
printf("after tolower() : %s\n",s);
}

执行
```
执行结果
```
before tolower() : aBcDeFgH12345;!#$
after tolower() : abcdefgh12345;!#$
```
Expand Down Expand Up @@ -412,8 +506,9 @@ main()
}
printf("after toupper() : %s\n",s);
}

执行
```
执行结果
```
before toupper() : aBcDeFgH12345;!#$
after toupper() : ABCDEFGH12345;!#$
```
Loading