Have you run the program with your debugger? Set a breakpoint early in the program, single step through the program, stepping into functions as you go, and watch your variables and perhaps you can see what is happening.
By the way, I recommend you switch to using std::string and std::vector instead of all those C-strings and arrays.
When encountering these sorts of problems, the first course of action should be to add output statements to see the values of various data pieces involved in your program. However, I think I spot the reason behind your problem.
Line 97 performs an assignment of a Person to another Person. Without overloading the assignment operator, the compiler-made default one does assignment of consecutive members. Your Person type has char[N] as the data type for first and last name, which don't copy contents on assignment. You'll need to write the assignment operator so that it copies all data members + the array elements into the other Person object.
Your searchName function should also store the result of "strlen(fname)" in some local var and then use that within the loop. Currently, strlen() is called repeatedly, and can be expensive. And line 160 should be replaced with a break. There's no need to assign a local var, then return it, just return the i. But sometimes compilers can optimize better if there are no premature returns, hence I suggested a break.
Also PlayerSearch(), DataDisplay(), and searchName() should use const parameters b/c the data is not modified.
Kemort, you changed the name fields to char* from char[N] and initialize them with dynamically allocated data, but then you reassign them to a string-literal (which should cause an error due the char* being assigned to const char[]) and causes a memory leak. If you want dynamically-allocated strings, you must manually manage the allocations/deallocations/copying chars/etc. yourself and have all the c-tor/d-tor/copy/move c-tor/assignment op functions defined in your Person data type. OR you can use std::string and have it manage all that for you. Clearly the latter is recommended.
However, I do NOT second the idea of using std::string/std::vector in place of cstrings/arrays... at least, not haphazardly. Don't get me wrong those types are great if you actually want the whole package of what they offer, namely the dynamic allocation. But statically-allocated arrays/cstrings are actually more efficient to use, even tho they are more limited. And it's good practice to know the <cstring> functions, at least some the important ones. I DO advise using std::array in place of tradional arrays/cstrings tho!
Kemort: Nothing I said was intended to be antagonistic, critical, portentous, etc. Strictly pedagogic. And no, I'm no implying YOU didn't know what I said, or "needed approval". I'm just contributing to the topic subject, and yes my content did relate to the subject, if a little circuitously. That's what I've been doing throughout too, so no need to call them "useless paw prints".
You posted some new code that contained errors, and for pedagogy's sake, I pointed it out. Admittedly, I got a little too technical with the first paragraph, so it prolly LOOKED like I was addressing you personally.
The second paragraph *especially* was not directed at you, just the subject matter. So just relax, okay?
There I go "again"? "Taliban pettiness"? You are hearing a snark in my posts that really and truly is not there.
There's no need to be sarcastic about "errors" either.
This is a learning forum, oriented toward novices. So it makes all the sense in the world to point out errors instead of possibly letting them be absorbed. When you post a block of alternate code and don't document otherwise, it's implied that it's error free. I know you knew that, you're just getting so agitated over this. In the 4th post, I may have used the word "you" too much and that's why you took it personally. I'm sorry, but it *really* was a general statement, pedagogic, not personal.
I too have gotten this far without you... so... *shrugs*
I didn't mean "too technical for you", I meant too much for this forum, or the thread's question in general (I do tend to do that...). That prolly contributed to why you thought I was criticizing you personally.