如何使用 strtok 添加数字?
How to add up numbers using strtok?
我正在尝试使用 strtok 在每个逗号之后将字符加在一起,但我不知道从哪里开始?存储 inputString 实际值的变量在哪里?托克+=托克;没有任何意义,但这就是我能想到的所有自动取款机。我还有一个将字符串转换为 int 的单独函数,我是否也将其添加到此处?假设该函数称为 char strint(void);
char addtotal (void)
{
char inputString[LINE_LEN + EXTRA_SPACES];
char *tok;
char com[2] = ",";
printf("Enter numbers to be tokenized using commas: \n");
if (fgets(inputString, LINE_LEN + EXTRA_SPACES, stdin) == NULL)
{
printf("ERROR!\n\n");
return EXIT_FAILURE;
}
if (inputString[strlen(inputString) - 1] != '\n')
{
printf("BUFFER OVERFLOW!\n\n");
return EXIT_FAILURE;
}
inputString[strlen(inputString) - 1] = 0;
tok = strtok(inputString, com);
while(tok!=NULL)
{
printf("%s \n", tok);
tok = strtok(NULL, com);
}
}
我不完全确定你想在这里实现什么,但我假设你正在尝试在逗号分隔的整数之间进行一些算术运算。
int addtotal(void)
{
int result;
...
tok = strtok(inputString, com);
for (result = 0; tok != NULL; )
{
result += atoi(tok);
tok = strtok(NULL, com);
}
return result;
}
你可以这样做。我没有测试它,但它应该可以工作。
我正在尝试使用 strtok 在每个逗号之后将字符加在一起,但我不知道从哪里开始?存储 inputString 实际值的变量在哪里?托克+=托克;没有任何意义,但这就是我能想到的所有自动取款机。我还有一个将字符串转换为 int 的单独函数,我是否也将其添加到此处?假设该函数称为 char strint(void);
char addtotal (void)
{
char inputString[LINE_LEN + EXTRA_SPACES];
char *tok;
char com[2] = ",";
printf("Enter numbers to be tokenized using commas: \n");
if (fgets(inputString, LINE_LEN + EXTRA_SPACES, stdin) == NULL)
{
printf("ERROR!\n\n");
return EXIT_FAILURE;
}
if (inputString[strlen(inputString) - 1] != '\n')
{
printf("BUFFER OVERFLOW!\n\n");
return EXIT_FAILURE;
}
inputString[strlen(inputString) - 1] = 0;
tok = strtok(inputString, com);
while(tok!=NULL)
{
printf("%s \n", tok);
tok = strtok(NULL, com);
}
}
我不完全确定你想在这里实现什么,但我假设你正在尝试在逗号分隔的整数之间进行一些算术运算。
int addtotal(void)
{
int result;
...
tok = strtok(inputString, com);
for (result = 0; tok != NULL; )
{
result += atoi(tok);
tok = strtok(NULL, com);
}
return result;
}
你可以这样做。我没有测试它,但它应该可以工作。