分割运算对象和运算法,但是运算法打印不出来是为什么?
int partition2(char* string, char* Str, int position)
{
int i, j;
i = position;
if (string[i] != '\0')
{
j = 0;
while (string[i] >='0'&&string[i]<='9' && (string[i] != '\0'))
{
Str[j] = string[i];
++i;
++j;
}
while ((string[i] == '+' || string[i] == '-' || string[i] == '*' || string[i] == '/')&&(string[i]!='\0'))
{
Str[j] = '\0';
++j;
Str[j] = string[i];
++i;
++j;
}
return i;
}
else
return -1;
}
void main()
{
int choice;
char string[50];
char Str[20];
int position=0;
int k=0;
printf("\t\t①英文句子分割 ②算术表达式分割\n请选择需要进行的操作:");
scanf("%d", &choice);
getchar();
printf("Please input string(length<=50): ");
gets_s(string);
printf("\nPartition result: \n");
if(choice==1)
while ((position = partition1(string, Str, position)) != -1)
{
++k;
printf("Partition %d : %s\n", k, Str);
}
if(choice==2)
while ((position = partition2(string, Str, position)) != -1)
{
++k;
printf("Partition %d : %s\n", k, Str);
}
}