c语言中如何将字符串转数值
时间: 2023-07-16 18:16:08 浏览: 55
在c语言中,可以使用`atoi()`和`atof()`函数将字符串转换为整型和浮点型数值。
`atoi()`函数将字符串转换为整型数值,其函数原型如下:
```c
int atoi(const char *str);
```
其中,`str`是待转换的字符串,函数返回转换后的整型数值。
例如,将字符串"123"转换为整型数值:
```c
char str[] = "123";
int num = atoi(str);
printf("%d", num); // 输出 123
```
`atof()`函数将字符串转换为浮点型数值,其函数原型如下:
```c
double atof(const char *str);
```
其中,`str`是待转换的字符串,函数返回转换后的浮点型数值。
例如,将字符串"3.14"转换为浮点型数值:
```c
char str[] = "3.14";
double num = atof(str);
printf("%lf", num); // 输出 3.140000
```
需要注意的是,如果字符串无法转换为数值,则函数返回0。另外,在使用`atof()`函数时,需要注意对于超过 double 类型范围的数值,将会返回正/负无穷大(inf/-inf)或 NaN。
相关问题
C语言实现将字符串的数值直接赋值给变量
在C语言中,可以使用库函数sscanf()将一个字符串转换为对应的数值类型,并将其赋值给变量。
例如,将字符串"123"赋值给一个整型变量num,可以这样写:
```c
char str[] = "123";
int num;
sscanf(str, "%d", &num);
```
其中,"%d"表示将字符串解析为十进制整数,"&num"表示将解析结果存储到num变量的地址中。
需要注意的是,如果字符串中包含非数字字符,或者超出了目标类型的取值范围,那么转换会失败。此时可以通过返回值来判断转换是否成功,如下所示:
```c
char str1[] = "123";
char str2[] = "abc";
int num1, num2;
if (sscanf(str1, "%d", &num1) == 1) {
printf("num1 = %d\n", num1);
}
if (sscanf(str2, "%d", &num2) == 1) {
printf("num2 = %d\n", num2);
} else {
printf("转换失败!\n");
}
```
输出结果为:
```
num1 = 123
转换失败!
```
这里使用了if语句来判断转换是否成功,sscanf()的返回值为成功解析的参数数量,如果为1则表示转换成功,否则表示转换失败。
用c语言将字符串转为数值
可以使用C语言 stdlib.h 库中的 atoi() 或 atof() 函数将字符串转为整数或浮点数。例如:
char str[] = "123";
int num = atoi(str); // 将字符串转为整数,num 的值为 123
char str[] = "3.14";
float num = atof(str); // 将字符串转为浮点数,num 的值为 3.14