Символдық массивтер. Жолдар

Автор: Пользователь скрыл имя, 28 Марта 2013 в 14:32, творческая работа

Описание работы

Символдық жолдарды хабарлау
Символдық жолдарды енгізу\шығару
Символдық жолдармен жұмыс жасауға арналған функциялар

Работа содержит 1 файл

Lektsia-SI_5.ppt

— 126.00 Кб (Скачать)

Символдық массивтер. Жолдар

 

Дәріс беруші Махметова  А.М.

Жоспар:

  • Символдық жолдарды хабарлау
  • Символдық жолдарды енгізу\шығару
  • Символдық жолдармен жұмыс жасауға арналған функциялар

 

Символдық жолдарды хабарлау

 

С тілінде символдық  тіркестерді сипаттау үшін арнайы  тип жоқ, олар көбінесе char типтегі элементтерден тұратын массив ретінде қарастырылады.

 

Жолдық немесе тіркестік  символдар ЭЕМ жадында көршілес  ұяшықтарда сақталады да, олардың  соңында ‘\o’ символы тұрады.

Мысалы:

 

char str[11];

#define  IZЕT   “наука” 

char izet[]=“наука”;

char s1[10]=“123456789”

 

Символдық жолдарды енгізу

  • scanf(); - алғашқы “бос орын” символына дейін енізілген символдарды ғана енгізеді;
  • gets(); - арасында “бос орын” символы бар жолдарды ENTER пернесін басқанша енгізеді.
  • getchar(); - параметрсіз функция. Символдарды бір-бірлеп ENTER пернесін басқанша енгізеді.

Бұл функциялар енгізілген жолдың  соңына нөлдік байтты автоматты  түрде енгізеді.

Мысал:

scanf(“%s”,str);

gets(str);

getchar(str);

 

Символдық жолдарды шығару

puts(); - шығарылатын жолдың соңына жаңа жолға көшу символын автоматты түрде қосады;

printf(); - жаңа жолға көшу символын өзіміз қарастырамыз.

Екі функция да жолды алғашқы  нөлдік байт кездескенше шығарады.

putchar(); - экранға тек бір ғана символ шығарады.

Мысал:

printf(“%s”,str);

puts(str);  putchar(s1);

#include <conio.h>

#include <stdio.h>

void main()

{ char z;

clrscr();

for (z='A'; z<='Z'; z++)

putchar(z);

getch();

}

#include <conio.h>

#include <stdio.h>

void main()

{ char z;

clrscr();

for (z='A';z<='Z'; z++)

{ if (z=='K' || z=='U') printf("\n");

printf(" %c-%d ", z,z); }

getch();  }

#include <conio.h>

#include <stdio.h>

void main()

{ char z;

clrscr();

for (z='0';z<='9'; z++)

{ if (z=='0' || z=='5') printf("\n");

printf(" %c-%d ", z,z); }

getch();  }

#include <stdio.h>

#include <conio.h>

void main ()

{   char str[80];

printf ("Vvedite ctroky dlinoi <80  simbolov:\n");

gets(str);

printf ("Vacha ctroka\n %s\n",str);

printf ("Vvedite eche odny ctroky dlinoi  <80 simbolov:\n");

scanf("%s",str);

printf ("Vacha ctroka:\n");

puts(str);

getch ();  }

Символдық жолдармен жұмыс  жасауға арналған функциялар

Символдық жолдармен жұмыс жасауға  арналған арнайы кітапхана string.h файлын сақталған.

Сол себептен программа тақырыбына

               #include <string.h>

жолын қосу керек

strcpy(s1,s2); - s2 жолының көшірмесін s1 жолына қосады. S1 жолының көлемі s2 жолы сиятындай үлкен болуы керек.

strcat(s1,s2); - s2 жолын s1 жолының соңына біріктіріп жазады. S2 жолы өзгеріссіз қалады.

strcmp(s1,s2); - s1 және s2 жолдарын салыстырп, жолдар бірдей болса 0 санын, кері жағдайда (екі жолдың айырмасын) теріс мән қайтарады.

strlen(s); - s жолындағы символдар санын анықтайды. Нөлдік байт есепке алынбайды.

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main ()

{   char s1[20], s2[20];

clrscr();

strcpy(s1,"Informatika-");

strcpy(s2, "Matematika.");

puts(s1);   puts(s2);

strcat(s1,s2);

puts(s1);  puts(s2);

getch (); }

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <conio.h>

void main()

{      char  s1[]="aaa",s2[]="aaaa",s3[]="aaa  ";

    clrscr();    

      printf("\n %d",strcmp(s1,s2));

      printf("\n %d",strcmp (s1,s3));

 printf("\n %d",strcmp (s2,s1));

 printf("\n %d",strcmp (s3,s1));

 printf("\n %d",atoi("a"));

 printf("\n %d",atoi("12a"));

 printf("\n %d",atoi("5aa")*atoi("2a34"));

getch();  }

strstr(s1,s2); - s2 жолын s1жолының ішінен іздейді.

strset (s1,ch); - s1 жолындағы барлық символдарды көрсетілген символға (char ch) ауыстырады.

strtod (s1,s2); - s1 жолын double типті санға ауыстырады.

strchr(s1,c);- s1 жолындағы коды көрсетілген символдың позициясын анықтайды.

strrev(s1); - s1 жолын керісінше бейнелейді.

strpbrk(s1,s2); - s2 жолының кез келген символын s1 жолынан іздейді.

Символдық жолдарды түрлендіру  функциялары

Символдық жолдарды түрлендіруге  арналған функциялар утилиттер  кітапханасының stdlib.h файлында сақталған.

Бұл функциялармен жұмыс жасау  үшін программа тақырыбына

               #include <stdlib.h>

жолын қосу керек

 

аtof() – жылжымалы нүктелі сандардан тұратын символдық жолды double типті санға ауыстырады;

 atoi() – бүтін сандардан тұратын символдық жолды int типті санға ауыстырады;

atol() – ұзын бүтін сандардан тұратын символдық жолды long типті санға ауыстырады;

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

void main()

{   char s1[]="99.55",s2[]="2345",s3[]="2000000";

double x;  int y;   long l;

clrscr();

x=atof(s1);    printf ("%s %10f  %s\n","s1 joli ",x,"sanina austi");

y=atoi(s2);    printf ("%s %10d  %s\n","s2 joli ",y,"sanina austi");

l=atol(s3);     printf ("%s  %10ld %s\n","s3 joli ",l,"sanina  austi");

 getch(); }

#include <stdio.h>

#include <string.h>

#include <conio.h>

void main()

{    char s[100];       int i, k;

      clrscr();

      puts(" vvedite ctroky");

       gets(s);

k=strlen(s);

puts(" REZULTAT PROGRAMM \n");       // кері оқу

  for (i=k; i>=0; i--)

    printf("%c",s[i]);

      printf("\n Press any key...");

    getch(); }

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{ char s[20];

int i,k=0;

clrscr();

strcpy(s,"informatika");

puts(s);

for (i=0;i<=strlen(s);i++)

if (s[i]=='a') k++;

printf ("v clove %i bykvi a.",k);

getch(); }

Мысал: пернетақтадан енгізілген сөйлемнің ең соңғы сөзін шығарыңыз.

#include <conio.h>

#include <stdio.h>

void main()

{ char s,ss;

char a[80];

int k,i;

clrscr();

printf ("vvedite predlozenie:\n");

for (i=0,s=' ',k=0;i<=79;i++)

{ss=s; s=getchar();

if (s==' ') continue;

if (s=='.') break;

if (ss==' ') k=0;

a[k]=s; k++;}

if (i==80 || k==0) printf (" no  \n");

else { a[k]='\0';

printf ("poslednee slovo: %s",a);}

getch(); }


Информация о работе Символдық массивтер. Жолдар