整形和字符转换

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

整型和字符串相互转换

itoa

功能:把一整数转换为字符串

用法:char *itoa(int value, char *string, int radix);

详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.

参数:

value: 待转化的整数。

radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制。

* string: 保存转换后得到的字符串。

返回值:

char * : 指向生成的字符串,同*string。

备注:该函数的头文件是"stdlib.h"

程序例:

#include

#include

int main()

{

int number = 123456;

char string[25];

itoa(number, string, 10);

printf("integer = %d string = %s\n", number, string);

return 0;

}

注释:编译系统:VC++6.0,TC不支持。

atoi

C语言库函数名: atoi

功能: 把字符串转换成整型数.

名字来源:array to integer 的缩写.

函数说明: atoi()会扫描参数nptr字符串,如果第一个字符不是数字也不是正负号返回零,否则开始做类型转换,之后检测到非数字或结束符\0 时停止转换,返回整型数。

原型: int atoi(const char *nptr);

需要用到的头文件: #include

程序例:

1)

#include

#include

int main()

{

int n;

char *str = "12345.67";

n = atoi(str);

printf("string = %s integer = %d\n", str, n);

return 0;

}

执行结果

string = 12345.67 integer = 12345

2)

#include

#include

int main()

{

char a[] = "-100" ;

char b[] = "123" ;

int c ;

c = atoi( a ) + atoi( b ) ;

printf("c = %d\n", c) ;

return 0;

}

执行结果

c = 23

sprintf

sprintf 将字串格式化。

在头文件#include

语法: string sprintf(string format, mixed [args]...);

传回值: 字串

1. 处理字符方向。-负号时表时从后向前处理。

2. 填空字元。0 的话表示空格填0;空格是内定值,表示空格就放着。

3. 字符总宽度。为最小宽度。

4. 精确度。指在小数点后的浮点数位数。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

转换字符

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

% 印出百分比符号,不转换。

b 整数转成二进位。

c 整数转成对应的ASCII 字元。

d 整数转成十进位。

f 倍精确度数字转成浮点数。

o 整数转成八进位。

s 整数转成字串。

x 整数转成小写十六进位。

X 整数转成大写十六进位。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

$money = 123.1

$formatted = sprintf ("%06.2f", $money); // 此时变数$ formatted 值为"123.10"

$formatted = sprintf ("%08.2f", $money); // 此时变数$ formatted 值为"00123.10"

$formatted = sprintf ("%-08.2f", $money); // 此时变数$ formatted 值为"123.1000"

$formatted = sprintf ("%.2f%%", 0.95 * 100); // 格式化为百分比

?>

¢%08.2f解释:

%开始符

0是"填空字元" 表示,如果长度不足时就用0来填满。

6格式化后总长度

2f小数位长度,即2位

¢第4行值为"00123.10" 解释:

因为2f是(2位)+小数点符号(1)+前面123(3位)=6位,总长度为8位,故前面用[填空字元]0表示,即00123.10

¢第4行值为"-123.1000" 解释:

-号为反向操作,然后填空字元0添加在最后面了

在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。

sprintf 是个变参函数,定义如下:

int sprintf( char *buffer, const char *format [, argument] ... );

除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:

格式化字符串上。

printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。

格式化数字字符串

sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代

相关文档
最新文档