3.3 Satrni funksiyaga berish
C++ da, biz funksiyaga satrlarni berishimiz mumkin va uning elementlari ustida kutilgan va ruxsat etilgan amallarni bajarish mumkin. Masalan,
(i) Unli /undosh/ raqamlar/maxsus belgilarni sanash
(ii) Holatlarni almashtirish, ya’ni, katta va kichik vaaksincha harflarni
(iii) Satrni teskarilash
(iv) Satrdagi har bir so`zni teskarilash va hok.
(i) Unli /undosh/ raqamlar/maxsus belgilarni sanash
Satrning individual belgilariga boshidan boshlab murojaat qilinadi va ular o`ziga bog`liq kategoriyali belgilar bilan solishtirishladi. Mos hisob o`zgaruvchisi oshib boradi.
Bu jarayon biz satrning oxiriga yetgunimizcha davom etadi. Nihoyat hamma natijalar chop etiladi.
Quyidagi programma yuqoridagi tushunchani namoyish etadi:
5-dastur
//Satrda unlilar/undoshlar/raqamlar/maxsus belgilarni sanash
#include < iostream.h >
#include< conio.h >
#include< stdio.h > // gets( ) va puts( ) uchun
const int SIZE =80;86
void main( )
{
char str[SIZE];
void pass-string(char string[ ]); //funksiya prototipi
clrscr( );
cout << "Uzunligi< = " << SIZE-1 << "bo`lgan satrni kiriting\n\n";
gets(str); //ko`p so`zli satrni kiritish uchun
cout << "\n\nKiritilgan satr bu\n\n";
puts(str);
pass-string(str); //funksiyani chaqirish
}
// pass-string( ) funksiyani aniqlash
void pass-string(char string[ ])
{
int i,vowel_count,consonant_count,digit_count,spl_count;
vowel_count = consonant_count = digit_count = spl_count = 0;
//count different characters
i=0;
while(string[i] ! = '\0')
{
if ( string[i]= = 'a' || string[i]= = 'A' || string[i] = = ' e'
|| string[i]= = 'E' || string[i]= = 'i' || string[i] = = 'I'
|| string[i]= = 'o‘ || string[i]= = 'O‘ || string[i] = = 'u'
|| string[i]= = 'U')
vowel_count + + ;
else if( (string[i] > ='a' && string[i] < = 'z') || (string[i] > = 'A' && string[i]< = 'Z') )
consonant_count + + ;
else if(string[i] > = '0' && string[i]< = '9')
digit_count + + ;
else
spl_count + + ;
i+ +;
}
cout << "\n\nBelgi hisobi bu";
cout<< "\n\nUnlilar soni: " <cout << "\nUndoshlar soni: " << consonant_count;
cout << "\nRaqamlar soni: " << digit_count;
cout << "\nMaxsus belgilar soni: " << spl_count;
}
Output
Uzunligi< = 79 bo`lgan satr kiriting87
LAXMI PUBLICATIONS (P) LTD. 113, Golden House, Daryaganj, New Delhi-110002
Kiritilgan satr bu
LAXMI PUBLICATIONS (P) LTD. 11 3, Golden House, Daryaganj, New Delhi-110002 Belgi hisobi bu
Unlilar soni: 18
Undoshlar soni: 31
Raqamlar soni: 9
Maxsus belgilar soni : 15
Do'stlaringiz bilan baham: |