大家好,我想要一个程序,该程序允许我放置一个原始句子和第二个句子,然后检查是否有可能使用C语言的Stacks(链接列表)从第一个句子构造最后一个句子,最好使用动态分配。 例如:“我吃了一个苹果” “苹果吃了我:是的” “我吃了一个苹果:不” 这是我被封锁的地方
`
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct element
{
char* word;
struct element* next;
}elm;
typedef struct linkedlist
{
elm* first;
}list;
int nbrltr(char* k)
{
int i=0;
while(k[i]!='\0')
i++;
return i;
}
int main()
{ char *p1,*q,*p2;
q=malloc(20*sizeof(char));
printf("put the original sentence :\n");
gets(q);
p1=malloc(nbrltr(q)*sizeof(char));
strcpy(p1,q);
printf("put the wanted sentence :\n");
gets(q);
p2=malloc(sizeof(char)*nbrltr(q));
strcpy(p2,q);
free(q);
return 0;
}
答案 0 :(得分:0)
即使您的代码不完整,也可以做几句话:
sizeof(char)
为1,将其乘以没有用您需要从两个字符串中提取单词,以查看 strtok 。
有两个列表,每个列表包含一个句子中的单词,您可以通过多种方法检查它们是否包含相同的单词。警告不要忘记单词多次出现的情况。