gpt4 book ai didi

c - strtok() 无法正常运行

转载 作者:行者123 更新时间:2023-11-30 20:56:53 24 4
gpt4 key购买 nike

当我尝试分离 token “(555) 333-444”时,下面的代码没有给出所需的输出。我需要函数来分别分离所有这些 555、333、444。我的错误可能是什么?

输出:

555

333-444

#include <stdio.h>
#include <string.h>

int main(void){

char *ptr;

char tel[]="(555) 333-444";

ptr=strtok(tel,"-() ");

while (ptr!=NULL)
{
printf("%s\n", ptr);
ptr=strtok(NULL," ");

}

getch();
}

最佳答案

这个:

ptr=strtok(NULL," ");

实际上应该是:

ptr=strtok(NULL,"-() ");

您需要始终指示要在循环中使用的分隔符。 strtok 不会“记住”它们。

或者您可以使用类似 const char* delimiters = "-() "; 的内容,并且每次将 strtok 与该组分隔符一起使用时就使用它(例如ptr = strtok(字符串、分隔符);)。

您不必手动列出所需的所有分隔符。

关于c - strtok() 无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com