第一種:
- char szString[] = "3.1415926535898";
- double db1;
- db1 = atof(szString);
- printf("atof result:\n");
- printf("%f %.12f %.2f %e %E\n", db1, db1, db1, db1, db1);
- printf("%.1e %.1E %.18e %.18E\n", db1, db1, db1, db1);
第二種:
- char szString2[] = "3.1415926535898";
- double db2;
- sscanf(szString2, "%lf", &db2);
- printf("\nsscanf result:\n");
- printf("%f %.12f %.2f %e %E\n", db2, db2, db2, db2, db2);
- 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