我想知道是否可以在字符串「102.33,220.44」中將字符串轉換爲C中的double [],並且如果是這樣做?將逗號分隔的字符串轉換爲雙重字符
回答
的一種方式是使用與strtok和' '
','
作爲分隔符,並且向strtod每個令牌轉換爲雙,其然後可以被存儲在數組中。你應該能有一些小的修改,這個示例代碼的strtok做到這一點:
int main()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.-");
}
return 0;
}
小心! strtok的大多數實現都會拋出一個給定一個空輸入字符串的SIG11 ...最好測試它(即使你不需要它,也可以保持代碼的可移植性)。和(現在我想起來)strtok的許多實現也SIGSEG上「未找到令牌」......所以sscanf通常是更可靠的選擇。 – corlettk
我用NULL作爲第一個輸入與海灣合作委員會和Visual Studio的strtok好吧,但sscanf似乎是一個更多樣化的選擇,並不需要像上述兩種不同的方式調用。 –
您可以使用sscanf
或strtod
(strtok
是沒有必要的)。如果你想得到字符串中的下一個數字(例如你的例子中的220.44),你最好使用strtod
來獲得第一個數字,然後跳過逗號並重復。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *p;
double val;
char str[] = " 102.33, 220.44";
int n = sscanf(str, "%lf", &val);
printf ("Value = %lf sscanf returned %d\n", val, n);
val = strtod(str, &p);
printf ("Value = %lf p points to: '%s'\n", val, p);
return 0;
}
- 1. 將字符串[]轉換爲逗號分隔的字符串。
- 2. 將逗號分隔的雙字符串轉換爲列表
- 3. 將逗號分隔字符串轉換爲多個字符串
- 4. 轉換列表爲雙引號逗號分隔字符串
- 5. 轉換逗號分隔字符串JSON
- 6. 轉換被逗號分隔值,以逗號分隔字符串
- 7. 將字符串的Arraylist轉換爲一個逗號分隔的字符串
- 8. Grails將字符串轉換爲以逗號分隔的字符串值
- 9. 將逗號分隔的字符串轉換爲變量列表?
- 10. IOS:將逗號分隔的字符串轉換爲NSSet
- 11. 如何將數組轉換爲逗號分隔的字符串?
- 12. 如何將逗號分隔的字符串轉換爲數組?
- 13. Python將字符串轉換爲逗號分隔的元組
- 14. 將兩個逗號分隔的字符串轉換爲地圖
- 15. 如何將整數轉換爲逗號分隔的字符串
- 16. 將逗號分隔的字符串轉換爲int PHP?
- 17. PHP將逗號分隔的字符串轉換爲CSV文件
- 18. 將逗號分隔的字符串轉換爲列表
- 19. 將std對象類轉換爲逗號分隔的字符串
- 20. SQL - 將結果轉換爲逗號分隔的字符串
- 21. 將逗號分隔字符串轉換爲SQL Server中的bigint
- 22. 高效逗號分隔值的字符串轉換爲字節
- 23. SQLite將列轉換爲逗號分隔字符串
- 24. sql將列值轉換爲逗號分隔字符串
- 25. Java - 將ArrayList轉換爲每個字符串周圍帶雙引號的逗號分隔字符串
- 26. 如何將沒有任何分隔符的字符串轉換爲逗號分隔的字符串?
- 27. 逗號分隔符號字符串
- 28. 將逗號分隔的字符串中的數字轉換爲數字向量
- 29. Python的 - 逗號分隔字符串轉換爲減少字符串列表
- 30. 逗號分隔的字符串爲ListProperty
是的,這是可能的。 –
我提出這個問題是因爲noobs需要幫助解決簡單的問題,除非有人指出這個問題重複的確切問題,否則我會堅持使用我的槍支。 SO宣稱的目標之一是成爲新手和大師們的首選聚集地。注意你......我也贊成那種無知的「是的,這是可能的」評論,因爲那是我的幽默感......額外的乾燥! – corlettk
您的主要錯誤在於沒有將問題分解爲其組成問題。您需要首先將字符串分解爲兩個子字符串,然後解析每個子字符串以提取數字。如果你不能「得到」如何「分解」一個問題的一般概念,你將會遇到很多麻煩。 –