带逗号空格和制表符的 strtok
strtok with comma spaces and tab
所以考虑这个字符串:
1,2.2, 3.5 ,6, 7.7
我想把每个数字分开,所以直到现在我都试过这个:
void readuserinput(char *ch)
{
char* buffer;
buffer = strtok(ch, ",");
while (buffer) {
printf("%s\n", buffer);
buffer = strtok(NULL, ",");
while (buffer && *buffer == '0')
buffer++;
}
}
但这忽略了 Tab
并打印了数字 7.7
和 tab
之前。
如您在 strtok documentation 中所见,您可以为其指定多个分隔符。所以你不必手动处理空格。 strtok
会为您做到这一点:
void readuserinput(char *ch)
{
ch = strtok(ch, ", \t");
while (ch)
{
printf("%s\n", ch);
ch = strtok(NULL, ", \t");
}
}
所以考虑这个字符串:
1,2.2, 3.5 ,6, 7.7
我想把每个数字分开,所以直到现在我都试过这个:
void readuserinput(char *ch)
{
char* buffer;
buffer = strtok(ch, ",");
while (buffer) {
printf("%s\n", buffer);
buffer = strtok(NULL, ",");
while (buffer && *buffer == '0')
buffer++;
}
}
但这忽略了 Tab
并打印了数字 7.7
和 tab
之前。
如您在 strtok documentation 中所见,您可以为其指定多个分隔符。所以你不必手动处理空格。 strtok
会为您做到这一点:
void readuserinput(char *ch)
{
ch = strtok(ch, ", \t");
while (ch)
{
printf("%s\n", ch);
ch = strtok(NULL, ", \t");
}
}