115
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Ал енді осы символдарды ASCII-кодтарымен бірге шығаратын мына
программаны кӛрейік.
/* латын әліпбиі*/
#include
#include
void main()
{
char z;
clrscr();
for(z='A';z<='Z';z++)
{
if (z=='K' || z=='U') printf("\n");
printf(" %c-%d ",z,z);
}
getch();
}
Программа жҧмысының нәтижесі:
A-65 B-66 C-67 D-68 E-69 F-70 G-71 H-72 I-73 J-74
K-75 L-76 M-77 N-78 O-79 P-80 Q-81 R-82 S-83 T-84
U-85 V-86 W-87 X-88 Y-89 Z-90
Келесі программа 0 мен 9 арасындағы цифрлық символдарды және олардың
ASCII кодтарын басып шығарады:
#include
#include
void main()
{
char z;
clrscr();
for(z='0';z<='9';z++)
{
if (z=='0' || z=='5') printf("\n");
printf (" %с-%в ", z, z);
}
getch();
}
Жҧмыс нәтижесі:
0 – 48 1 – 49 2 – 50 3 – 51 4 – 52
5 - 53 6 – 54 7 – 55 8 – 56 9 – 57
Сонымен, жеке берілген символдық мәліметтер (константалар мен айныма-
лылар) компьютер жадында сол символдардың ASCII-кодтарына сәйкес бүтін
сандық мәндер жазылған бір-бір байт орын алады екен. Соларды экранға
шығаруға арналған мәліметтерді Ә қосымшасынан қарауға болады.
116
7.2 Символдық тіркестер
Символдық жолдарды немесе тіркестерді бірнеше тәсілмен ӛңдеуге болады,
олардың негізгілері:
1) тіркестік константаларды қолдану;
2) char типті жиымды қолдану;
3) char типіне сілтейтін нҧсқауыштарды пайдалану;
4) символдық тіркестерден тҧратын жиымдарды қолдану.
Сӛз тіркестері немесе тіркестік (жолдық) константа қостырнақшаға алынып
жазылады. Тырнақшаға алынатын символдар тізбегінің ең соңына автоматты
тҥрде ‗\0‘ символы жазылады. Компилятор жолдық символдарды компьютер
жадына жазғанда, олардың кӛлемін анықтау ҥшін сол символдар санын
есептейді. Символдық константа осы сӛз тіркесі жазылған жады аймағына
сілтейтін нҧсқауыш болып табылады. Символдық тіркестер жиымын (массивін)
беру кезінде компилятор компьютер жадының қажетті кӛлемін анықтау ҥшін
жиымды сипаттағанда, оны тіркестік константа арқылы инициалдауға болады.
Мысалы:
char c[]= “Атырау, Алтай - жеріміз”;
Әдеттегі жиым қолданылатын жағдайлар сияқты бҧл жиым аты с осы жиымның
1-элементіне сілтейтін нҧсқауыш болып табылады.
c ==&c[0];
*c ==‟0‟;
*(c+1) == c[1] == „n‟;
Сӛз тіркестерін анықтау ҥшін нҧсқауыштарды мынадай тҥрде сипаттауға
болады:
char *c1 = “\n студенттер саны”;
осы сипаттауға эквивалентті болып келесі сипаттау есептеледі:
static char c1[]=”\n студенттер саны”;
Осы қарастырылған екі сипаттау да с1 тіркесінің нҧсқауыш екенін білдіреді.
Компьютер жадының қажетті кӛлемін айқын кӛрсетуге де болады. Мысалы,
сыртқы сипаттауда келесі жолдың мынадай тҥрде жазылғаны кӛрсетілген.
char c[25]=”Білім - өмір шырағы”;
Элементтердің саны жолдың ҧзындығынан бір символ артық болуы керек,
яғни оның ең соңында ‗\0‘ символы болуы тиіс.
Статикалық немесе сыртқы жиымдағы бҧрынғы қарастырылған әдеттегі
жиымдар оларды қолдану кезінде автоматты тҥрде 0-мен инициалданған
болатын. Ал сӛз тіркестерін пайдалану кезінде де статистикалық немесе сыртқы
жиымдар солар тәрізді 0 символымен инициалданады.
Келесі мысалды қарастыралық:
#include
#include
main()
{
char msg[30];
strcpy(msg, "Сәлем, Азат!");
puts(msg);
117
}
Мҧндағы msg сӛзінен соң тҧрған [30] саны компиляторға 29 символ ҥшін, яғни
char типіндегі 29 айнымалыдан тҧратын жиым ҥшін жады бӛлуді қамтамасыз
етеді (30-орын нӛлдік символмен – \0 толтырылады). msg айнымалысының
символдық мәні жоқ; ол тек char типіндегі 29 айнымалының алғашқысының
адресін (компьютер жадындағы белгілі бір орын адресі) сақтайды.
Компилятор strcpy(msg, "Сәлем, Азат!") операторын кездестір-
генде, екі тҥрлі әрекет орындайды:
- "Сәлем, Азат!" тіркесі соңына (\0) символын (ASCII коды 0) қосады.
- strcpy функциясын орындап, msg айнымалысы нҧсқап тҧрған жады
аймағына сол сӛз тіркесі символдарын біртіндеп кӛшіреді. Ол тіркесті
кӛшіруді сӛз соңындағы нӛлдік символдан кейін барып аяқтайды.
puts(msg) функциясын орындағанда, оған msg мәні, яғни тіркес
қҧрамындағы бірінші символ адресі беріледі. Одан кейін puts сол символдың
нӛлдік символ емес екенін анықтап, ары қарай адреске бірді қосып, келесі
символды оқиды, т.с.с. тіркес соңына дейін жетеді. Нӛлдік символға жеткен
соң, puts жҧмысты аяқтайды;
Осындай тәсіл тіркес ҧзындығына шек қоймай, нӛлдік символға дейінгі
символдарды біртіндеп оқуды жҥзеге асырады.
7.3 Символға нұсқауышты пайдалану
Екінші тәсіл – символдарға нҧсқауыш жасау. Программаны келесі тҥрге
келтірейік:
#include
#include
main()
{
char *msg;
msg = "Сәлем, Азат!";
puts(msg);
}
msg алдындағы жҧлдызша (*) компиляторға оның символға нҧсқауыш екенін
білдіреді, яғни msg белгілі бір символ адресін сақтай алатын айнымалы. Бірақ
мҧнда компилятор символдар ҥшін ешқандай орын бӛлмейді және msg да
ешқандай мәнге ие болмайды.
Компилятор strcpy(msg, "Сәлем, Азат!") операторын кездестір-
генде, ол тағы екі тҥрлі әрекет орындайды:
- объектілік код файлы ішіндегі бір орынға соңына (\0) символы қосылған
"Сәлем, Азат!"
тіркесін (ASCII коды 0) жазып қояды.
- сол тіркестің алғашқы символы адресін msg айнымалысына меншіктейді.
strcpy функциясын орындалып, puts(msg) командасы бҧрынғыша нӛлдік
символға дейінгі мәліметті кӛшіреді.
Енді символдық тіркестерден тұратын жиымдарды қарастыралық. Бҧл
жиымдардың әрбір жолы символдық жиым болып табылады. Мысалы,
статикалық жиымның сипатталуы келесідей тҥрде жазылуы мҥмкін:
Достарыңызбен бөлісу: |