5В011100-«Информатика» мамандығына арналған «Есеп шығару әдістемесі»



бет21/37
Дата04.04.2023
өлшемі1,37 Mb.
#79347
1   ...   17   18   19   20   21   22   23   24   ...   37
Байланысты:
Есеп шығару әдістемесі

1.5.6 Strstr ( ) функциясы
Соңғы және Си-дің «жолдар бойынша іздеу» функцияларының ішіндегі ең пайдалысы – strstr ( ) функциясы. Ол төмендегідей прототипке ие:
Char* strstr(const char* str1, const char* str2);
Strstr ( ) функциясы str1 жолының ішіндегі str2 жолынан басталатын бірінші позицияға сілтеуішті кері қайтарады. Егер ол жолдың арасында мұндай сәйкестіктер болмаса, онда функция NULL –ді қайтарады. Егер екінші жол 0 ұзындығын иемденсе, функция Str1 сілтеуішін кері қайтарады. Бір жолдың басқа жолға енген жерін таба отырып, сілтеуіштің көмегімен str1 –ден бастап str2-ге қарасты сиымдылықты есептеуге болады. Іздеу және салыстыру символдардың регистрінің ажыратуымен орындалады. Strstr ( ) функциясының қолданылуы 12-ші листингте көрсетілген.
1-ші листинг
/* strlen ( ) функциясының қолданылуы.*/
#include
#include
int main (void)
{ size_ t length; char buf [80];
while(1)
{puts (“\nEnter a line of text, a blank line to exit.”);
gets(buf); Length= strlen (buf);
if (Length і=0)
printf(“\nThat line is u characters long.”, length); else break;}
return 0;}
2.1 Жолдарды көшіруге мысалдар
/* strcpy ( ) демонстрациясы*/
#include
#include
#include
char source [ ] = “The source string.”;
int main ( void)
{char dest1[80]; char *dest2, *dest3;
printf(“\nsource: %s”, source);
/* dest1-ге көшіру болады, dest1 сілтейтін болғандықтан*/
strcpy (dest1, source);
printf(“\ndest1: %s”, dest1);
/* dest2-ге көшіру үшін міндетті түрде жады бөлу қажет.*/
dest2=(char*) ma11oc(strlen(source) +1);
strcpy(dest2, source);
printf (“\ndest2: %s\n”,dest2);
/*Жады бөлінбейінше көшіруді орындауға тиым салынады.*/
/* Келесі оператор үлкен қателіктер тудыруы мүмкін едію*/
/* strcpy (dest3, source);*/
return 0;}
3-ші листинг
/*strncpy( ) функциясының қолданылуы*/
#include
#include
char dest[ ] =”……………….”;
char source [ ] = “abcdefghijkmnopqrstuvwxyz”;
int main (void)
{size_t n;
while(1)
{puts(“Enter the number of characters to copy (1-26)”);
scanf (“#d”, &n);
if (n>0 && n<27)break;}
printf(“\nBefore strncpy destination = %s”, dest);
strncpy(dest, source, n);
printf(“\nAfter strncpy destination =%s\n”, dest);
return 0;}
4-ші листинг
/* Strdup( ) стандарттық функциясының қолданылуы*/
#include
#include
#include
char source [ ]= “The source string”;
int main(void)
{char*dest;
if ((dest=strdup(source) = = NULL)
{fprintf(stderr, “Error allocating memory.”);
exit(1); }
printf(“The destination = %s\n”,dest); return 0; }


Достарыңызбен бөлісу:
1   ...   17   18   19   20   21   22   23   24   ...   37




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет