Stīgu garuma salīdzināšana ir ierasta funkcija C programmēšanā, jo tā ļauj redzēt, kurā virknē ir vairāk rakstzīmju. Tas ir ļoti noderīgi, lai kārtotu datus. Stīgu salīdzināšanai nepieciešama īpaša funkcija; nelietojiet! = vai ==.
Soļi
1. solis. Ir divas funkcijas, kas ļauj salīdzināt virknes C
Abas šīs funkcijas ir iekļautas bibliotēkā.
- strcmp () - šī funkcija salīdzina divas virknes un atgriež rakstzīmju skaita salīdzinošo atšķirību.
- strncmp () - tas ir tas pats, kas strcmp (), izņemot to, ka tiek salīdzinātas pirmās n rakstzīmes. Tas tiek uzskatīts par drošāku, jo palīdz novērst avāriju pārplūdi.
2. solis. Sāciet programmu ar nepieciešamajām bibliotēkām
Jūs vēlaties gan bibliotēkas, gan citas, kas var būt nepieciešamas jūsu konkrētajai programmai.
#iekļaut #iekļaut
3. solis. Sāciet
int funkciju.
Tas ir vienkāršākais veids, kā apgūt šo funkciju, jo tiks atgriezts vesels skaitlis, kas salīdzina abu virkņu garumu.
#include #include int main () {}
4. solis. Definējiet divas virknes, kuras vēlaties salīdzināt
Šajā piemērā mēs salīdzināsim divas iepriekš noteiktas simbolu virknes. Atgriešanās vērtību vēlaties definēt arī kā veselu skaitli.
#include #include int main () {char *str1 = "ābols"; char *str2 = "oranža"; int ret; }
5. solis. Pievienojiet salīdzināšanas funkciju
Tagad, kad esat definējis savas divas virknes, varat pievienot salīdzināšanas funkciju. Mēs izmantosim strncmp (), tāpēc mums jānodrošina, lai funkcijā būtu iestatīts izmērāmo rakstzīmju skaits.
#include #include int main () {char *str1 = "ābols"; char *str2 = "oranža"; int ret; ret = strncmp (str1, str2, 6); / *Tiks salīdzinātas abas virknes, kuru garums nepārsniedz 6 rakstzīmes */}
6. solis. Izmantojiet
Ja… Citādi paziņojumu, lai veiktu salīdzināšanu.
Tagad, kad funkcija ir ieviesta, varat izmantot paziņojumu If… Else, lai parādītu, kura virkne ir garāka. strncmp () atgriezīs 0, ja virknes ir vienāda garuma, pozitīvs skaitlis, ja str1 ir lielāks, un negatīvs skaitlis, ja str2 ir lielāks.
#include #include int main () {char *str1 = "ābols"; char *str2 = "oranža"; int ret; ret = strncmp (str1, str2, 6); ja (ret> 0) {printf ("str1 ir garāks"); } cits if (ret <0) {printf ("str2 ir garāks"); } else {printf ("Abas virknes ir vienādas"); } atgriešanās (0); }