Mostrando línea de archivo de texto sin usar strstr () en C

Tengo un problema con mi progtwig de C Es un argumento de línea de comando para buscar una cadena de caracteres desde el archivo de texto y generar la línea que comenzó con el carácter de entrada del usuario sin usar strstr (). Está bien, pero hay un problema. Quiero mostrar todo el archivo cuando el carácter de búsqueda es NULL. Cuando hice esto, la salida se volvió diferente al uso de la función incorporada strstr (). ¿Puedes ayudarme? ¿Qué hay de malo con mi código, por favor?

#include  #include  #include  char* MyStrstr(char* pszSearchString, char* pszSearchWord); int main(int argc, char* argv[]) { char szTemp1[10] = {0}; char szTemp2[10] = {0}; char * pszTemp1 = NULL; char * pszTemp2 = NULL; strcpy(szTemp1, "aabaaacaaaad"); strcpy(szTemp2, ""); pszTemp1 = MyStrstr(szTemp1, szTemp2); pszTemp2 = strstr(szTemp1, szTemp2); printf("%s\n",pszTemp1); printf("%s", pszTemp2); return 0; } char* MyStrstr(char* pszSearchString, char* pszSearchWord) { int nFcount = 0; int nScount = 0; int nSearchLen = 0; int nIndex = 0; char* pszDelString = NULL; if(pszSearchString == NULL) { return NULL; } if(pszSearchWord == ""){ return pszSearchString; } else { while(pszSearchWord[nSearchLen] != '\0') { nSearchLen++; } for(nFcount = 0; pszSearchString[nFcount] != '\0'; nFcount++) { if(pszSearchString[nFcount] == pszSearchWord[nScount]) { nScount++; } else { nScount = 0; } if(nScount == nSearchLen) { nIndex = (nFcount - nScount) + 1; pszDelString = pszSearchString + nIndex; } return pszDelString; } } return NULL; } 

Reemplazar

 if(pszSearchWord == "") 

por

 if (pszSearchWord[0] == 0) 

pszSearchWord == "" compara la dirección pszSearchWord con la dirección del literal de cadena "" y esas direcciones siempre son diferentes en su caso. No puedes comparar cadenas usando el operador == .