更新时间:2021-08-15 23:26:00
让我为您提出另一种方法,使用strsep
和某些if
条件来检测字符是整数还是字符串,以下代码适用于所有您的案件
Let me propose you another way, using strsep
and some if
conditionals to detect if the characters are integer or string, the following code works for all your cases
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *token, *string, *var;
char *str = "x=x+10;";
int tmp1,tmp2;
tofree = string = strdup(str);
if (string == NULL)
return -1;
token = strsep(&string, "=");
printf("%s\n", token);
token = strsep(&string, "=");
printf("%s\n", token);
var = strsep(&token, "+");
if( var[0] >= 0x60 && var[0] <= 0x7B ) // detect string
{
printf("str1 = [ %s ] \n", var);
} else { // else case will be an integer
tmp1 = atoi(var);
printf("int1 = [ %d ] \n ",tmp1);
}
var = strsep(&token, "+");
var[strlen(var)-1]='\0'; // remove ";"
if( var[0] >= 0x61 && var[0] <= 0x7A )
{
printf("str2 = [ %s ] \n", var);
}else{
tmp2 = atoi(var);
printf("int2 = [ %d ] \n ",tmp2);
}
return 0;
}