我必须检查用户给出的字符串是否是正确的表达式。字符串应如下所示:
int1+int2+int3+int4+...
例如:
1+5+21
是正确的表达式,而1 + a不是。
我该怎么做?
我遇到的问题是我定义了如下字符串:
char *str;
str = (char*)malloc(1024*sizeof(char));
char **output = strtok(str, "+"); // error
因此,在使用strtok
函数时出现分段错误。
答案 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);
}