C语言实现将字符串的数值直接赋值给变量
时间: 2023-07-14 11:12:08 浏览: 287
在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则表示转换成功,否则表示转换失败。
阅读全文