Il y a deux textes, le texte a est le contenu et le texte b est la liste des mots ligne par ligne. Le programme consiste à obtenir la position des mots du texte b dans le contenu.strstr() fonction obtenir la position
Ceci est mon programme:
#include<stdio.h>
#include<string.h>
#define WORDMAXLENGTH 30
#define MAXLENGTH 200
int main(){
typedef struct{
char stack[MAXLENGTH][WORDMAXLENGTH];
int top;
}stack;
stack query;
query.top = 0;
int i = 0, j = 0,q = 0;
char myArr[MAXLENGTH];
char *PosStr = NULL;
FILE *inFile = fopen("query.txt","r");
FILE *inFile2 = fopen("hello.txt","r");
while(fgets(query.stack[query.top],WORDMAXLENGTH,inFile) != NULL){
query.top++;
}
fgets(myArr,MAXLENGTH,inFile2);
for(i = 0; i < query.top; i++){
PosStr = strstr(myArr,query.stack[i]);//get the position of s2 (Q1)
printf("%d\n", PosStr - myArr + 1);
}
fclose(inFile);
fclose(inFile2);
return 0;
}
Q1. Cette équation est-elle correcte? Si c'est faux, comment puis-je obtenir le poste? Si c'est juste, pourquoi je ne peux pas obtenir la position correctement? En outre, certains du résultat de POSSTR est 0.
La taille de myArr ne doit pas être MAXLENGTH * WORDMAXLENGTH? – mathiasfk