我想知道如何取1个string,用分隔符(比如空格)将其拆分为2,然后将2个部分分配给2个单独的string。 我试过使用strtok()但无济于事。
我想在嵌套循环中使用strtok()。 但是这并没有给我想要的结果。 可能是因为他们正在使用相同的内存位置。 我的代码是这样的forms: char *token1 = strtok(Str1, "%"); while(token1 != NULL ) { char *token2 = strtok(Str2, "%"); while(token2 != NULL ) { //DO SMTHING token2 = strtok(NULL, "%"); } token1 = strtok(NULL, "%"); // Do something more }
我有这样的string: a;b;c;d;e f;g;h;i;j 1;2;3;4;5 我想分析它的元素。 我使用嵌套的strtok函数,但它只是分割第一行,并使空指令指针。 我怎么能克服这个? 这里是代码: token = strtok(str, "\n"); while(token != NULL && *token != EOF) { char a[128], b[128]; strcpy(a,token); strcpy(b,a); printf("a:%s\n",a); char *token2 = strtok(a,";"); while(token2 != NULL) { printf("token2 %s\n",token2); token2 = strtok(NULL,";"); } strcpy(token,b); token = strtok(NULL, "\n"); if(token == NULL) { printf("its null"); } } 输出: token […]
我有一个string,我想标记。 但是C strtok()函数需要我的string是char* 。 我怎样才能做到这一点? 我试过了: token = strtok(str.c_str(), " "); 失败,因为它把它变成一个const char* ,而不是一个char*
strtok什么特性是不安全的(就缓冲区溢出而言)我需要注意的是什么? 对我来说strtok_s是,在Visual C ++中的strtok_s (这是“安全的”)有一个额外的“上下文”参数,但它看起来在其他方面是相同的…是一样的,还是实际上是不同的?
请解释我的strtok()函数的工作。手册说,它将string分解为令牌。 我无法从手册中了解它究竟做了什么。 我在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; } […]