C++ 字符串轉化成浮點型


第一種:

[cpp]  view plain  copy
 
  1. char  szString[] = "3.1415926535898";   
  2. double db1;   
  3. db1 = atof(szString);   
  4. printf("atof result:\n");   
  5. printf("%f  %.12f  %.2f  %e  %E\n", db1, db1, db1, db1, db1);   
  6. printf("%.1e  %.1E  %.18e  %.18E\n", db1, db1, db1, db1);  


 

第二種:

[cpp]  view plain  copy
 
  1. char  szString2[] = "3.1415926535898";   
  2. double db2;   
  3. sscanf(szString2, "%lf", &db2);   
  4. printf("\nsscanf result:\n");   
  5. printf("%f  %.12f  %.2f  %e  %E\n", db2, db2, db2, db2, db2);   
  6. printf("%.1e  %.1E  %.18e  %.18E\n", db2, db2, db2, db2);  


對於sscanf函數還有很多的妙用。給大家看看百科上的使用:

      1. 常見用法。

  char buf[512] ;

  sscanf("123456 ", "%s", buf);//此處buf是數組名,它的意思是將123456以%s的形式存入buf中!

  printf("%s\n", buf);

  結果為:123456

 

  2. 取指定長度的字符串。如在下例中,取最大長度為4字節的字符串。

  sscanf("123456 ", "%4s", buf);

  printf("%s\n", buf);

  結果為:1234

 

  3. 取到指定字符為止的字符串。如在下例中,取遇到空格為止字符串。

  sscanf("123456 abcdedf", "%[^ ]", buf);

  printf("%s\n", buf);

  結果為:123456

 

  4. 取僅包含指定字符集的字符串。如在下例中,取僅包含1到9和小寫字母的字符串。

  sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);

  printf("%s\n", buf);

  結果為:123456abcdedf

  當輸入:

  sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);

  printf("%s\n",buf);

  結果為:123456

 

  5. 取到指定字符集為止的字符串。如在下例中,取遇到大寫字母為止的字符串。

  sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);

  printf("%s\n", buf);

  結果為:123456abcdedf

 

  6、給定一個字符串iios/12DDWDFF@122,獲取 / 和 @ 之間的字符串,先將 "iios/"過濾掉,再將非'@'的一串內容送到buf中

  sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);

  printf("%s\n", buf);

  結果為:12DDWDFF


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM