标签: strtok

strtok()如何将字符串拆分为C中的标记?

请解释我的strtok()功能工作.手册说它把字符串分成了令牌.我无法从手册中了解它实际上是做什么的.

我添加了手表str*pch检查其工作情况,当第一个while循环发生时,内容str仅为"this".如何在屏幕上显示下面显示的输出?

/* strtok example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] ="- This, a sample string.";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ,.-");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,.-");
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Splitting string "- This, a sample string." into tokens:
This
a
sample
string

c string split token strtok

101
推荐指数
7
解决办法
32万
查看次数

使用带有std :: string的strtok

我有一个我想要标记的字符串.但是C strtok()函数需要我的字符串char*.我怎么能这么做呢?

我试过了:

token = strtok(str.c_str(), " "); 
Run Code Online (Sandbox Code Playgroud)

因为把它变成a const char*而不是a 而失败了char*

c++ strtok

45
推荐指数
4
解决办法
12万
查看次数

如何在C中将字符串拆分为2个字符串

我想知道如何取一个字符串,用分隔符(例如空格)将其拆分为2,并将2个部分分配给2个单独的字符串.我尝试过strtok()但无济于事.

c string strtok

38
推荐指数
2
解决办法
18万
查看次数

C:正确使用strtok_r

如何使用strtok_r而不是strtok来执行此操作?

char *pchE = strtok(NULL, " ");
Run Code Online (Sandbox Code Playgroud)

现在我正在努力使用strtok_r......但有时我会遇到问题strtol.我有一个我执行10次(同时)的线程.

char *savedEndd1;
char *nomeClass = strtok_r(lineClasses, " ", &savedEndd1);
char *readLessonS = strtok_r (NULL, " ", &savedEndd1);
char *readNTurma = strtok_r(NULL, " ",  &savedEndd1);

if (readNTurma==NULL)
printf("CLASS STRTOL begin %s %s\n",nomeClass, readLessonS );
int numberNTurma = strtol(readNTurma, NULL, 10);
Run Code Online (Sandbox Code Playgroud)

而且我已经readNTurma == NULL好几次了......为什么会这样?不明白为什么会这样NULL

c char strtok

35
推荐指数
3
解决办法
7万
查看次数

为什么strtok()被认为是不安全的?

strtok我需要注意哪些特性是不安全的(在缓冲区溢出方面)?

对我来说有点奇怪的是strtok_s(在Visual C++中它是"安全的")有一个额外的"上下文"参数,但看起来它在其他方面是相同的......它是相同的,还是它实际上是不同的?

c security strtok

28
推荐指数
3
解决办法
2万
查看次数

C中的strtok和strsep有什么区别

可能有人给我解释一下什么样的差异之间存在着strtok()strsep()?它们的优点和缺点是什么?为什么我会选择一个而不是另一个.

c strtok strsep

25
推荐指数
3
解决办法
2万
查看次数

将字符串拆分为标记并将其保存在数组中

如何将字符串拆分为一个标记,然后将它们保存在一个数组中?

具体来说,我有一个字符串"abc/qwe/jkh".我想分开"/",然后将令牌保存到数组中.

输出将是这样的

array[0] = "abc"
array[1] = "qwe"
array[2] = "jkh"
Run Code Online (Sandbox Code Playgroud)

请帮我

c split strtok

23
推荐指数
3
解决办法
11万
查看次数

什么在PHP中使用函数strtok(),如何比其他字符串函数更好地做同样的事情?

什么在PHP中使用函数strtok(),如何比其他字符串函数更好地做同样的事情?

php string strtok

22
推荐指数
3
解决办法
9283
查看次数

C中的strtok_r和strtok_s有什么区别?

我正在尝试在需要能够在Linux和Windows中编译的C程序中使用此函数.起初我尝试使用strtok_r,但是当我在windows上编译时,它抱怨函数不存在并且说它会假设它是一个外部函数,但后来失败了.然后我用strtok_s编译了!然后我尝试在Linux上,但现在它抱怨有一个"未定义的引用'strtok_s'".

是一个Windows唯一的功能,另一个是Linux功能??? 我能做些什么才能在两者上编译?

c linux windows compiler-errors strtok

22
推荐指数
5
解决办法
2万
查看次数

strtok() - 为什么你必须传递NULL指针才能获得字符串中的下一个标记?

这是strtok()的解释.

#include <string.h>
char* strtok( char* s1, 
              const char* s2 );*
Run Code Online (Sandbox Code Playgroud)

第一次调用strtok()会返回指向s1指向的字符串中第一个标记的指针.对strtok()的后续调用必须将NULL指针作为第一个参数传递,以便获取字符串中的下一个标记.

但我不知道,为什么你必须传递NULL指针才能获得字符串中的下一个标记.我搜索了大约15分钟,但没有在互联网上找到解释.

c c++ string pointers strtok

22
推荐指数
2
解决办法
2万
查看次数

标签 统计

strtok ×10

c ×8

string ×4

c++ ×2

split ×2

char ×1

compiler-errors ×1

linux ×1

php ×1

pointers ×1

security ×1

strsep ×1

token ×1

windows ×1