Функция strcmp - сравнява два стринга

Библиотечната функция strcmp - сравнява два стринга. Функцията изисква два параметъра: niz1, niz2. Сравняването се извършва символ по символ, буква по буква лексикографски на база на участващите в тях знаци/символи (ASCII кодовете им). Резултатът от функция strcmp е цяло число. Два низа се считат за равни, когато съвпадат по дължина и съдържат едни и същи знаци на съответните си позиции. При речниково сравняване стринга с главни букви е по-малък от същия стринг, но с малки букви - едни и същи букви, но се различават като главни и малки, т.к имат различен ASCII код. Две букви могат да изглежаждат еднакво, да се семиотично подобни (главна А, Е, Т латиница и кирилица), но са различни букви при сравняването си. Върната стойност -1 или +1 е различна за различните реализации езика, т.е в зависимост от конкретната реализация на езика -1 може да означава, че niz1 е по-малък от niz2 за C++ или че niz1 е по-голям от niz2 за Visual C++.

задача с функция strcmp

Да разгледаме следната задача: Трябва да се сравнят лексикографски (речниково) две поредици от символи и да се изведе резултата от сравнението им - коя от двете редици би била по-напред в речник. Пример: Aaadsfg; Bbbc; Изход: низът 'Aaadsfg' е по-малък

Следващата програма съдържа пример за сравняване на два низа, стринга чрез strcmp:

#include<iostream>
using namespace std;
 
int main()
{const int n=100;
   char mas2[n],mas1[n],ose;
   int a;
//deklarira promenliwite. W C++ tipyt String se predstawq kato masiw ot Char

  cout<<"Da se systawi programa, chrez koqto ot klawiaturata se wywevdat \n";
  cout<<"posledowatelno dwe redici ot simwoli (string ,niz) bez interwali. \n";
  cout<<"Wsqka ot tqh e s dylvina mevdu 5 i 15 simwola. Programata da izwevda \n";
  cout<<"syobshenie za rezultata ot leksikografskoto im srawnenie.\n";
  cout<<"Obytnete wnimanie, che glawnite bukwi sa 'po-napred' ot malkite. \n";
  cout <<"Primer: Aaadsfg; Bbbc; Izhod: nizyt 'Aaadsfg' e po-malyk.\n";
   cout<<endl;
    do {
    fflush(stdin);//chisti bufera na klawiaturata
    cout<<"Wywedete pyrwiqt string : ";gets(mas1);
    fflush(stdin);//chisti bufera na klawiaturata
    cout<<"Wywedete wtoriqt string : ";gets(mas2);
 
    a=strcmp (mas1,mas2);// strcmp - dwa stringa
   if (a==0) {cout<<"Ima pylno sywpadenie.\n";}
    else{
     cout<<"Pri leksikografsko podrevdane ";   
   if (  a<0 )
    {cout <<"pyrwiqt niz e po-napred."<<endl;}
     else
     {cout <<"wtoriqt niz e po-napred."<<endl;}
    }//if
   cout<<"She wywevdate li drugi danni <y/n>: ";cin>>ose;
   } while (ose=='y');
  system("pause"); 
  return 0;
}//kraj na programa strcmp - dwa stringa

Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.

Начало на страницата

 
Размер на шрифта
Increase Font Size Option 3 Reset Font Size Option 3 Decrease Font Size Option 3
Bulgarian Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Търсене в сайта: