Ich bin ziemlich neu in C und übe derzeit, indem ich ein Programm schreibe, mit dem Benutzer nach Hashes suchen können, die in einer Textdatei geschrieben sind. Ich habe mit dem folgenden Programm kommen:Übereinstimmende Hashes in C
HashMatch.c
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//Declaring Functions
int searchstringinfile(char *string, char *filename);
void UsageInfo(char *filename);
//Display usage info on arguements for program
void UsageInfo(char *filename) {
printf("Usage: %s <file> <string>\n", filename);
}
int searchstringinfile(char *filename, char *string) {
//Define File
FILE *userfile;
int linenumber = 1;
int search_result = 0;
char temp[10000];
//Error handling for invalid file
if((userfile = fopen(filename, "r")) == NULL) {
return(-1);
}
//Matching words line-by-line
while(fgets(temp, 10000, userfile) != NULL) {
if((strstr(temp, string)) != NULL) {
//Display line in which matched word is found
printf("A match found on line: %d\n", linenumber);
printf("\n%s\n", temp);
search_result++;
}
linenumber++;
}
// Display message if no matches are found
if(search_result == 0) {
printf("\nSorry, couldn't find a match.\n");
}
//Closes the file.
if(userfile) {
fclose(userfile);
}
return(0);
}
//main function.
int main(int argc, char *argv[]) {
int result, errcode;
//Display format for user to enter arguements and
//End program if user does not enter exactly 3 arguements
if(argc < 3 || argc > 3) {
UsageInfo(argv[0]);
exit(1);
}
system("cls");
//Pass command line arguements into searchstringinfile
result = searchstringinfile(argv[1], argv[2]);
//Display error message
if(result == -1) {
perror("Error");
printf("Error number = %d\n", errcode);
exit(1);
}
return(0);
}
Ich habe auch mit einer Datei, die eine Zeichenfolge kommen und eine hash:
Hashtext.txt
$1$$t8TX0OHN6Wsx6vlPZNKik1
Ice-Cream
I SCREAM FOR Ice-Cream !
Wenn ich nach dem Wort Ice-Cream als solches suchen würde:
./test hashtext Ice-Cream
Ich bin in der Lage Zeilen mit dem Wort zu finden:
A match found on line: 2
Ice-Cream
A match found on line: 3
I SCREAM FOR Ice-Cream !
Allerdings, wenn ich für die Hash im Text suchen war, ich bin nicht in der Lage, dies zu tun. Kann mir jemand erklären, warum ich nicht in der Lage bin, nach dem Hash zu suchen und mich durch die Schritte zu führen, damit ich das tun kann?
Vielen Dank.
vielleicht Hash nicht auftritt? – coderredoc
Das Problem scheint auf dem Weg zu sein, wie Sie Ihr Programm mit dem Hash aufrufen. Versuchen Sie, den eingegebenen Suchbegriff zu drucken, um ihn zu überprüfen. –
Sie müssen $ entkommen, wenn es Teil Ihrer Befehlszeilenargumente ist – Pras