16得票2回答
为什么应该弃用strtok()函数?

我听说很多程序员表示,将来可能会弃用使用strtok。有些人说目前仍然可用,为什么它不是一个好的选择呢? strtok()在对给定字符串进行标记化方面表现出色。这是否与时间和空间复杂度有关? 我在互联网上找到的最好链接是这个。但这似乎并不能解决我的好奇心。如果可能的话,请提供任何替代方法。

8得票2回答
64位机器上的strtok函数

以下代码在64位和32位上的工作方式不同,这使得我移植代码时遇到了麻烦。 char * tmp = "How are you?"; printf("size of char * = %ld and size of strtok return val = %ld \n",sizeof(char...

60得票14回答
使用strtok和std::string

我有一个字符串需要分割成标记。 但是 C strtok() 函数要求我的字符串是char*类型的。 如何简单地实现这个需求? 我已经尝试过:token = strtok(str.c_str(), " "); 它失败的原因是它将其转换为 const char* 而不是 char* The...

10得票4回答
包含<string.h>仍出现“strtok_r”函数的隐式声明

我有以下代码用于将包含以\n分隔的行和每行由\t分隔的整数的字符串进行标记化: void string_to_int_array(char file_contents[BUFFER_SIZE &lt;&lt; 5], int array[200][51]) { char *saveptr...

18得票5回答
在C语言中将char*转换为大写字母

我正在尝试将C语言中的char *转换为大写,但函数toupper()在这里无法使用。 我正在尝试获取temp值的名称,即冒号前的任何内容,本例中为“Test”,然后我希望将名称完全大写。void func(char * temp) { // where temp is a char * c...

20得票2回答
strtok函数的线程安全性

我花了一些时间来调试一个出现分段错误的程序。这个缺陷相当不确定和间歇性,非常令人烦恼。我将其缩小到调用 strtok()。我怀疑在两个不同的线程中调用 strtok() 来拆分字符串会导致分段错误。我能在两个不同的线程中调用 strtok() 吗? 谢谢。

17得票2回答
C语言中嵌套strtok函数的问题

我有一个这样的字符串:a;b;c;d;e f;g;h;i;j 1;2;3;4;5 我想逐个元素解析它。我使用了嵌套的strtok函数,但它只分割第一行并将令牌指针设置为null。我该怎么办?以下是代码:token = strtok(str, "\n"); while(token != NUL...

24得票4回答
我需要释放strtok生成的字符串吗?

更确切地说,strtok如何生成其返回值所指向的字符串?它是否动态分配内存?我之所以问这个问题是因为我不确定在下面的代码中是否需要释放标记: STANDARD_INPUT变量用于退出过程,以防我在分配内存时耗尽内存,而string是被测试的主题。int ValidTotal(STANDARD...

43得票4回答
C:strtok_r函数的正确使用方法

我应该如何使用strtok_r代替strtok来完成这个任务?char *pchE = strtok(NULL, " "); 现在我正尝试正确使用strtok_r...但有时会遇到strtol的问题。 我有一个线程,我同时执行10次。char *savedEndd1; char *nomeCl...

26得票6回答
C语言中的strtok_r和strtok_s有什么区别?

我正在尝试在一个需要能够在Linux和Windows上编译的C程序中使用此函数。起初,我尝试使用strtok_r,但当我在Windows上编译时,它抱怨该函数不存在,并表示它将假定它是一个外部函数,但最后失败了。然后我使用了strtok_s并成功编译了!但是,现在在Linux上尝试时,它抱怨存...