如何获取字符串中的特定字符

时间:2015-04-05 18:09:42

标签: c data-structures linked-list

我有一个字符串(方程式或多项式),我想在字符串中得到一个特定的字符。例如,如果用户输入:

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

}     
}

我不知道在分配一个节点后如何继续,我如何获取因子和功率并填充它们?

1 个答案:

答案 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' ;

 }

输入应以符号开头,否则会导致错误答案。这只是一个基本代码。应根据您提供的输入类型进行进一步修改。我希望你能做到。