Kannst du 'klappt irgendwie nicht' genauer spezifizieren?
Grundsätzlich ist deine Überlegung gar nicht mal so schlecht.
Nur solltest du dir eines angewöhnen:
Es gibt in C 2 prominente Familien von Funktionen:
Da sind zum einen die mem.... Funktionen und zum anderen die str...
Funktionen.
Beide haben unterschiedliche Aufgaben. Die einen, die str... Funktionen
kommen immer dann zum Einsatz, wenn man es mit Strings (alswo Texten) zu
tun hat. Strings sind in C speziell, weil es sich dabei um eine
Sonderform von Bytefolgen handelt, bei denen das Byte mit dem Wert 0
eine Spezialfunktionen inne hat. Es sagt uns, wo genau ein String zu
Ende ist. Wenn ich den Text "Hallo" in einem Array der Länge 50
speichere, dann ist die Speicherfläche zwar 50 Zeichen groß, der String
hat aber nur eine Länge von 5 Zeichen. Alles was dahinter noch im
Speicher steht, kann nicht sinnvoll für irgendwelche Ausertungen benutzt
werden, weil es zufällig ist, was da genau drinnen steht. Die str...
Funktionen wissen um die Sonderstellung dieses 0-Bytes und
berücksichtigen es. Sie arbeiten immer nur soweit durch einen String
durch, bis sie auf das 0-Byte stossen und hören dann auf.
Die mem.... Funktionen hingegen wissen darüber überhaupt nichts. Für die
ist ein Byte-Feld einfach nur ein Byte-Feld. Diese Funktionen arbeiten
immer das komplette angegebene Speicherfeld durch ungeachtet dessen, was
da genau drinnen steht.
Wenn du dir über die Unterschiede zwischen mem... und str... im klaren
bist und immer die richtige Funktion aus der richtigen Familie benutzt,
je nachdem ob du es mit Strings zu tun hast oder nicht, dann hast du
viel weniger Probleme. Deine Aufgabenstellung hört sich stark nach
Texten an, also Stringverarbeitung. Daher ist eine Funktion aus dem
mem... Bereich einfach nicht angebracht.