我在将In [6]: links = {'fox': [], 'dog': []}
In [7]: text = "The quick brown fox jumps over the lazy dog. fox. Redfox."
In [8]: reg_iter(text, links)
Out[8]: {'dog': [(40, 43)], 'fox': [(16, 19), (45, 48)]}
和creditos
的值放在结构中时遇到问题。
我有一个文件,例如:
等级:4.5
我使用nota
,但它返回一个字符指针,我需要strtok
和int
。
float
答案 0 :(得分:0)
在您的代码中,token
是指向char
的指针,与C中的字符串相同。
使用atoi
将字符串转换为int
:
_materias->creditos = atoi(token);
使用atof
将字符串转换为float
:
_materias->nota = atof(token);
如果您需要让程序对输入文件中的错误更加健壮,请改用strtol
和strtof
。如果您的输入文件可能有错误(即始终),则它们更难使用但更安全。
或者,使用sscanf
- 它可能比strtol
和strtof
更容易使用,并且支持检测错误,但它没有类型安全性,因此可能导致难以使用 - 令人沮丧的崩溃。
用法:
if (sscanf(token, "%d", &_materias->creditos) != 1)
fprintf(stderr, "Error\n");
if (sscanf(token, "%f", &_materias->nota) != 1)
fprintf(stderr, "Error\n");