I’m trying to check whether or not the second argument in my program is a substring of the first argument. The problem is that it only work if the substring starts with the same letter of the string.
EDIT: It must be done in C, not C++.
int main(int argc, char **argv){
if (argc != 3) {
printf ("Usage: check <string one> <string two>\n");
}
int result = my_strstr(argv[1], argv[2]);
if(result == 1){
printf("%s is a substring of %s\n", argv[2], argv[1]);
}
else{
printf("%s is not a substring of %s\n", argv[2], argv[1]);
}
return 0;
}
Your analysis of the problem (“it only work if the substring starts with the same letter of the string”) is incorrect and so you are looking for the wrong problem. Since this appears to be homework, I’ll just hint at the underlying problem.
While it fails with
Michiganandiganit will correctly work withMichiganandhigan.Why does it work for
higanand notigan? What is the first letter ofigan? What is different about that when it comes toMichigan?