Автор: Пользователь скрыл имя, 28 Марта 2013 в 14:32, творческая работа
Символдық жолдарды хабарлау
Символдық жолдарды енгізу\шығару
Символдық жолдармен жұмыс жасауға арналған функциялар
Символдық массивтер. Жолдар
Дәріс беруші Махметова А.М.
Жоспар:
Символдық жолдарды хабарлау
С тілінде символдық
тіркестерді сипаттау үшін
Жолдық немесе тіркестік
символдар ЭЕМ жадында
Мысалы:
char str[11];
#define IZЕT “наука”
char izet[]=“наука”;
char s1[10]=“123456789”
Символдық жолдарды енгізу
Бұл функциялар енгізілген
Мысал:
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(" %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(" %c-%d ", z,z); }
getch(); }
#include <stdio.h>
#include <conio.h>
void main ()
{ char str[80];
printf ("Vvedite ctroky
gets(str);
printf ("Vacha ctroka\n %s\n",
printf ("Vvedite eche odny
scanf("%s",str);
printf ("Vacha ctroka:\n");
puts(str);
getch (); }
Символдық жолдармен жұмыс жасауға арналған функциялар
Символдық жолдармен жұмыс
Сол себептен программа
#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[]="
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 жолынан іздейді.
Символдық жолдарды түрлендіру функциялары
Символдық жолдарды
Бұл функциялармен жұмыс жасау үшін программа тақырыбына
#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[]="
double x; int y; long l;
clrscr();
x=atof(s1); printf ("%s %
y=atoi(s2); printf ("%s %
l=atol(s3); printf ("%s
%10ld %s\n","s3 joli ",l,"
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.",
getch(); }
Мысал: пернетақтадан енгізілген сөйлемнің ең соңғы сөзін шығарыңыз.
#include <conio.h>
#include <stdio.h>
void main()
{ char s,ss;
char a[80];
int k,i;
clrscr();
printf ("vvedite predlozenie:\
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 ("
else { a[k]='\0';
printf ("poslednee slovo: %s",
getch(); }