简体   繁体   English

如何使用 strtok 仅获取括号中的术语

[英]how to only get the terms in the bracket using strtok

My input is (2,3,4),(2,5,4) I only want to get 2 3 4 \n 2 5 4 as my output.我的输入是(2,3,4),(2,5,4)我只想得到2 3 4 \n 2 5 4作为我的 output。 can anyone help me with this?谁能帮我这个?

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

int main() {
   char string[50] = "(2,3,4),(2,5,4)";
   // Extract the first token
   char * token = strtok(string, "()");
   // loop through the string to extract all other tokens
   while( token != NULL ) {
      printf( " %s\n", token ); //printing each token
      token = strtok(NULL, "()");
   }
   return 0;
}
``

I have implemented this with the standard strtok() not the non-standard strsep() mentioned in comment.我已经使用标准strtok()而不是评论中提到的非标准strsep()实现了这一点。

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

int main(void) {
    char input[] = "(2,3,4),(2,5,4)";
    char *tok = strtok(input, "( ,)" );
    for(int i = 0; i < 2; i++) {
        // each set
        for(int j = 0; j < 3; j++) {
            // break each set
            if(tok) {
                printf("%s ", tok);   //printing each token
                tok = strtok(NULL, "( ,)" );
            }
        }
        printf("\n");
    }
    return 0;
}

Program output程序 output

2 3 4 
2 5 4 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM