strncmp vergleicht bis '\0' ?



  • Hallo,

    stimmt es, dass die Funktion strncmp 2 Strings vergleicht bis '\0' kommt?

    char str1[50]="Hallo"
    char str2[100]="Hallo"
    
    strncmp(str1,str2,50);
    

    Ich habe 2 strings mit unterschiedlichen Größen, aber mit den selben Wörtern. Nach dem Wort würden ja Zufallswerte kommen. Beim 1. 45 Zufallswerte und beim 2. 95 Zufallswerte. Vergleicht der jetzt nur bi zum '\0' oder kommplett 50 Werte?

    Was ist wenn ich jetzt nur vergleichen will, ob die ersten 5 Wörter gleich sind? Kann ich das dann auch mit strncmp machen?

    char str1[50]="Hallo world"
    char str2[100]="Hallo Welt"
    
    strncmp(str1,str2,5);
    

    Vielen Dank für eure Antworten!
    Gruß



  • Hi,
    soweit ich weis liefert strcmp, bei einer wahren Aussage, den Wert 0 zurrück.
    wenn du Teile eines String auf Übereinstimmung prüfen möchtest, kann die Funktion strstr weiter helfen. 🙂

    strstr(str1,str2);



  • Hi,

    Acronis schrieb:

    Hallo,
    ...
    stimmt es, dass die Funktion strncmp 2 Strings vergleicht bis '\0' kommt?
    ...

    ja, wenn '\0' vor dem n-ten Vergleich in str1 oder in str2 vorkommt. Maximal werden n Zeichen verglichen. Der Funktion ist es egal, wie viele Wörter du in den Zeichenketten hast.
    Was meinst du mit deinen Zufallswerten und wie trennst du denn die Wörter?
    Mehrere Wörter in einem char* scheint mir nicht die optimale Speicherstruktur zu sein.

    Gruß,
    B.B.


Anmelden zum Antworten