我想知道是否可以在字符串“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
您的主要错误在于没有将问题分解为其组成问题。您需要首先将字符串分解为两个子字符串,然后解析每个子字符串以提取数字。如果你不能“得到”如何“分解”一个问题的一般概念,你将会遇到很多麻烦。 –