網站首頁 編程語言 正文
??字符串不僅可以轉換為整數,也可以轉換為浮點數,字符串轉浮點數函數原型如下:
float __cdecl __mingw_strtof (const char * __restrict__, char ** __restrict__); double __cdecl __mingw_strtod (const char * __restrict__, char ** __restrict__);
??strtof函數返回值是一個單精度浮點數,strtod返回值是一個雙精度浮點數。
??首先來看strtof函數,它的參數有兩個。第一個參數指向要解釋的以空字符結尾的字節字符串。第二個參數指向數字后的第一個字符。
??該函數首先丟棄盡可能多的空白字符,直到找到第一個非空白字符為止。然后從該字符開始,采用與浮點字面量類似的語法,盡可能多地使用有效的字符,并將其解釋為數值。指向最后一個有效字符之后的字符串其余部分的指針存儲在函數第二個參數中。
有效的浮點值可以是以下值之一:
十進制浮點表達式。它由以下部分組成:
- (可選)加號或減號
- 非空十進制數字序列可選地包含小數點字符(由當前C確定
locale
)(定義有效數字) - (可選),
e
或者E
跟隨可選的負號或加號和非空序列的十進制數字(定義指數)
二進制浮點表達式。它由以下部分組成:
(可選)加號或減號
-
0x
或0X
- 非空的十六進制數字序列可選地包含小數點字符(由當前C確定
locale
)(定義有效數字) - (可選),
p
或者P
跟隨可選的負號或加號和非空序列的十進制數字(定義指數)
無窮大表達式。它由以下部分組成:
- (可選)加號或減號
-
INF
或者INFINITY
無視事件
非數字表達式。它由以下部分組成:
- (可選)加號或減號
-
NAN
或NAN(
char_sequence)
忽略該NAN
部分的情況。char_sequence只能包含字母數字字符。結果是靜態的NaN浮點值。
任何其他可能被當前安裝的C接受的表達式 locale
??下面通過一個簡單的例子演示strtof函數的用法。
#include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { char str[30] = "-123.456 5.672451e3 acde"; char *pEnd; float ret1,ret2; ret1 = strtof(str, &pEnd); ret2 = strtof(pEnd, &pEnd); printf("數字1是: %.3f\n", ret1); printf("數字2是: %.3f\n", ret2); printf("字符串部分是: %s \n", pEnd); return 0; }
??代碼運行結果如下:
??在轉換數字的過程中,遇到空白字符函數就會退出。同時函數的第二個參數會存儲退出的位置,當再次調用函數的時候,就會接著上次退出的位置繼續轉換。
strtod函數和strtof函數用法基本一樣,可以直接在上面程序的基礎上修改。
#include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { char str[30] = "-123.456 5.672451e3 acde"; char *pEnd; double ret1,ret2; ret1 = strtod(str, &pEnd); ret2 = strtod(pEnd, &pEnd); printf("數字1是: %lf\n", ret1); printf("數字2是: %lf\n", ret2); printf("字符串部分是: %s \n", pEnd); return 0; }
??將返回值的類型修改為double
類型就可以了,執行結果如下:
原文鏈接:https://blog.csdn.net/qq_20222919/article/details/122975526
相關推薦
- 2023-05-23 golang中的單引號轉義問題_Golang
- 2022-04-12 Trailing spaces not allowed no-trailing-spaces
- 2022-07-10 組件內路由守衛beforeRouteEnter和beforeRouteLeave
- 2023-02-09 go?sync?Waitgroup數據結構實現基本操作詳解_Golang
- 2023-03-16 windows下Docker部署Flask的詳細教程_docker
- 2022-12-10 K8S節點本地存儲被撐爆問題徹底解決方法_云其它
- 2022-08-21 python深度學習tensorflow入門基礎教程示例_python
- 2022-09-21 Django中外鍵使用總結_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支