【发布时间】:2020-12-02 10:25:27
【问题描述】:
我有一个关于令牌的问题。我创建了这个程序,它根据标记“[]”分割一个句子。但是,是否有可能检索它之间的字符?例如,我想从输入 [5000] 中检索数字 5000,其中“[ ]”是障碍标记,因此我可以稍后将该数字分配给变量。这是我的代码:
#include <string.h>
#include <stdio.h>
int main () {
char str[ ] = "My balance is [5000]";
const char s[ ] = "[]";
char *token;
token = strtok(str, s);
while( token != NULL ) {
printf( " %s\n", token );
token = strtok(NULL, s);
}
return(0);
}
编辑:基本上我想知道如何将“[]”中的值分配给变量。假设我正在使用 fgets 提示用户键入整个句子,并将其余额放在括号 [] 中。如何创建一个程序来检索括号中的值并将其分配给一个值?
【问题讨论】:
-
代码在第二行输出
5000。您正在提取字符串5000。 -
你得到了什么结果?您在输出中看到
5000了吗?有了这个结果,你还需要知道什么?只需将该结果保存到变量中即可。 -
"[]"不是 "barrier token",但字符串将被拆分为由字符[和]分隔的标记。第一个令牌是"My balance is ",第二个令牌是"5000"(您要检索的内容)。 -
@kaylum 怎么样?它在技术上将整个句子分成 3 个部分。就像我改用 fgets 函数一样,它怎么知道将哪个分配给变量?
-
@Jabberwocky 不是“屏障令牌”,明白了!但是如何将“[]”中的值具体分配给变量?假设我要使用 fgets,其中用户键入整个句子并将数字括起来,我如何对其进行编程以专门检索该数字?