1. 字符串转换成数字
头文件: <stdlib.h>
函数原型 | 说明 |
int atoi(char const *str); | 将字符串转换成整型数 |
long atol(char const *str); | 将字符串转换成长整型数 |
double atof(char const *str); | 将字符串转换成浮点型数 |
long int strtol(char const *str, char **unused, int base); | 将字符串转换成长整型数 |
unsigned long int strtoul(char const *str, char **unused, int base); | 将字符串转换成无符号长整型数 |
double strtod(char const *str, char **unused); | 将字符串转换成浮点型数 |
atol和strtol同样把参数字符串转换为long,但是,strtol保存一个指向转换值后面第1个字符的指针。如果函数的第2个参数并非NULL,这个指针便保存在第2个参数所指向的位置。strtol的第3个参数时转换所执行的基数,如果基数为0,任何在程序中用于书写整数字面值的形式都被接受,包括指定数字基数的形式,如0x13FF和0276。否则,基数值应该在2至36的范围内,然后转换根据这个给定的基数进行。对于基数11到36,字母A到Z分别被解释为数值10到35。
简单示例:
#include <stdio.h>
#include <stdlib.h>
int main() {
char a[] = "200";
char b[] = "-100";
int c;
c = atoi(a) + strtol(b, NULL, 10);
printf("c = %d\n", c);
return 0;
}
结果输出:
c = 100
2. 数字转换成字符串:
利用sprintf函数可以实现数字转换成字符串。
简单示例:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 20
int main() {
int a = 123456789;
char str[20];
sprintf(str, "%d", a);
puts(str);
return 0;
}