将字符数组划分为标记

时间:2015-06-01 19:45:16

标签: c

我必须检查用户给出的字符串是否是正确的表达式。字符串应如下所示:

int1+int2+int3+int4+...

例如:

1+5+21

是正确的表达式,而1 + a不是。

我该怎么做?

我遇到的问题是我定义了如下字符串:

char *str;
str = (char*)malloc(1024*sizeof(char));
char **output = strtok(str, "+"); // error

因此,在使用strtok函数时出现分段错误。

1 个答案:

答案 0 :(得分:1)

在您的情况下使用strtok的示例:

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

int function()
{
     char* str = malloc(80);
     strcpy(str,"1+5+21");

     const char s[2] = "+";
     char *token;

     token = strtok(str, s); /* get the first token (1) */

     while( token != NULL )  /* walk through other tokens */
     {
         // characters manipulation for verification
     }

     free(str);

     return(0);
}