从字符串中读取数字列表

安莫尔·辛格·贾吉(Anmol Singh Jaggi)

我想阅读一个空格列表-字符串中存储的分隔数字。
我知道如何stringstream在C ++中使用-

string s = "10 22 45 67 89";
stringstream ss(s);
int numbers[100];
int k=0, next_number;
while(ss>>next_number)
    numbers[k++]=next_number;

我的问题是我们如何在C语言中执行此操作?我已经sscanf()在C中读过,但是我不确定它在这里是否有用。

杰里·科芬

可以使用sscanf,如果你知道你的字符串中的预期项目数在这里:

char const *s = "10 22 45 67 89";

sscanf(s, "%d %d %d %d %d", numbers, numbers+1, numbers+2, numbers+3 numbers+4);

但是,如果您不知道先验项的数量,则可以尝试标记化输入,然后尝试分别转换每个项。

char s[] = "10 22 45 67 89";

char *n = strtok(s, " ");
do { 
    numbers[k++] = atoi(n);
} while (n = strtok(NULL, " "));

请注意,strtok该接口的界面很丑陋-它修改了传递给它的字符串,并要求您大致按上述方式使用它-您在第一个调用中传递了输入字符串,然后对该字符串传递了NULL,以对后续调用进行标记化直到到达字符串的末尾。它在内部在字符串中存储了指向当前位置的指针,这也使线程安全成为问题。

您还可以sscanf%n转换中使用来计算已经转换的字符数,但这与(IMO)在几乎strtok可以想象的最丑陋的代码中竞争一样,我无法处理一天之内发布的两件事。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从包含“”的字符串中读取数字

来自分类Dev

从字符串中读取数字

来自分类Dev

列表中的阶数字符串包含在读取文件

来自分类Dev

如何读取字符串数据并只从中获取数字并将其存储在列表中

来自分类Dev

MATLAB从字符串中读取所有数字

来自分类Dev

C:从文件中读取数字和字符串

来自分类Dev

只读取字符串中的数字

来自分类Dev

如何从字符串或列表中读取配置?

来自分类Dev

python-列表以字符串形式从csv中读取

来自分类Dev

python-列表以字符串形式从csv中读取

来自分类Dev

将列表中的字符串转换为数字矩阵

来自分类Dev

如何比较列表中包含数字的字符串?

来自分类Dev

解析“脏”字符串中的数字列表

来自分类Dev

从字符串中获取不同数字的列表

来自分类Dev

如何解释字符串中的数字列表?

来自分类Dev

如何制作给定字符串中的数字列表,javascript?

来自分类Dev

我想从列表中的字符串中提取数字

来自分类Dev

将列表中的数字乘以字符串

来自分类Dev

从列表中查找最大的数字字符串

来自分类Dev

从字符串列表中查找包含字符以及字符+数字的组合的字符串

来自分类Dev

字符串中的数字

来自分类Dev

字符串中的数字?

来自分类Dev

字符串中的数字

来自分类Dev

拆分字符串的数字列表

来自分类Dev

用数字列表分割字符串

来自分类Dev

忽略字符串中的数字(数字)

来自分类Dev

根据字符串中的数字对字符串列表进行排序

来自分类Dev

从csv读取,strtod无法读取带数字的字符串

来自分类Dev

忽略所有字符,仅从字符串中读取数字部分