我有一个字符串(方程式或多项式),我想在字符串中得到一个特定的字符。例如,如果用户输入:
4x^2+3x-9
我想为每个术语创建一个节点,所以在第一个节点中我需要在其因子中存储'4'并在其幂中存储'2'。以下是我识别节点的代码。
typedef struct node *ptr;
struct node
{
char sign;
int power;
int factor;
ptr next;
};
typedef ptr poly;
typedef ptr position;
以下是我已经编写的用于接受用户多项式的代码:
void fillPoly(poly polynomial)
{
system("cls");
char polyn[100];
printf("\t\t\tEnter your polynomial please. Your polynomial should not exceed 7 terms.\n\t\t\t");
scanf("\t\t\t%s",polyn);
position temp;
temp=polynomial;
while (polyn!='\0')
{
(temp)->next=(position)malloc(sizeof (struct node));
// Here is the problem
}
}
我不知道在分配一个节点后如何继续,我如何获取因子和功率并填充它们?
答案 0 :(得分:0)
此代码段可以帮助您。
for(int i=0;i<strlen(poly);i++) {
// You need only to fetch 4 data members from the string
// 1 - Sign
temp->sign = poly[i++];
// 2 - Factor
temp->factor = poly[i++] - '0' ; // to convert char to int
// 3 - x ( is ignored in ur case )
// 4 - Power
temp->power = poly[i++] - '0' ;
}
输入应以符号开头,否则会导致错误答案。这只是一个基本代码。应根据您提供的输入类型进行进一步修改。我希望你能做到。