Girilen kelimeyi hecelerine ayıran program.(C++ Uygulamaları) Favori Uygulama :)
//Girilen kelimeyi hecelerine ayıran program.
//İyi çalışmalar
// Türkçe heceleme algoritması
#include <stdio.h>
int main ()
{int i=0;
char a[30];
printf("hecelemek istediginiz kelimeyi girin \n");
scanf ("%s",a);
for (i=0;a[i]!='\0';i++) // döngü dizinin sonuna gelene kadar devam eder.(son olarak null geldiğinde biter.)
{printf("%c",a[i]);
if (a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u') // kelimenin ilk sesli harrfini bulur
{
if (a[i+1]=='a'||a[i+1]=='e'||a[i+1]=='i'||a[i+1]=='o'||a[i+1]=='u') // eğer bu ilk sesli harfin yanındaki harf sesli harf ise aralarına tire koyar.
printf(" - ");
else if
(a[i+2]=='a'||a[i+2]=='e'||a[i+2]=='i'||a[i+2]=='o'||a[i+2]=='u') // eğer bu ilk sesli harfin yanındaki sessiz harf ise diğer yanındaki sesli mi diye bakılır.
//Eğer sesliyse ilk sesli harf ve yanındaki sessiz harfin arasına tire koyar.
printf(" - ");
else
if (a[i+3]=='a'||a[i+3]=='e'||a[i+3]=='i'||a[i+3]=='o'||a[i+3]=='u') //eğer iki yanındaki de sessiz ise 3.yanındaki harf sesli mi diye bakılır.Eğer sesliyse
{
printf("%c - ",a[i+1]); i++;}// ilk sesli harfin yanındaki sessiz harfin yanana tire koyar
else if
(a[i+4]=='a'||a[i+4]=='e'||a[i+4]=='i'||a[i+4]=='o'||a[i+4]=='u') // eğer ilk sesli harften sonra 3 adet sessiz harf geliyorsa ..
{
printf("%c%c - ",a[i+1],a[i+2]); i+=2;}}}
}// ilk sesli harfin yanındaki iki sessiz harften sonra tire koyar
//İyi çalışmalar
// Türkçe heceleme algoritması
#include <stdio.h>
int main ()
{int i=0;
char a[30];
printf("hecelemek istediginiz kelimeyi girin \n");
scanf ("%s",a);
for (i=0;a[i]!='\0';i++) // döngü dizinin sonuna gelene kadar devam eder.(son olarak null geldiğinde biter.)
{printf("%c",a[i]);
if (a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u') // kelimenin ilk sesli harrfini bulur
{
if (a[i+1]=='a'||a[i+1]=='e'||a[i+1]=='i'||a[i+1]=='o'||a[i+1]=='u') // eğer bu ilk sesli harfin yanındaki harf sesli harf ise aralarına tire koyar.
printf(" - ");
else if
(a[i+2]=='a'||a[i+2]=='e'||a[i+2]=='i'||a[i+2]=='o'||a[i+2]=='u') // eğer bu ilk sesli harfin yanındaki sessiz harf ise diğer yanındaki sesli mi diye bakılır.
//Eğer sesliyse ilk sesli harf ve yanındaki sessiz harfin arasına tire koyar.
printf(" - ");
else
if (a[i+3]=='a'||a[i+3]=='e'||a[i+3]=='i'||a[i+3]=='o'||a[i+3]=='u') //eğer iki yanındaki de sessiz ise 3.yanındaki harf sesli mi diye bakılır.Eğer sesliyse
{
printf("%c - ",a[i+1]); i++;}// ilk sesli harfin yanındaki sessiz harfin yanana tire koyar
else if
(a[i+4]=='a'||a[i+4]=='e'||a[i+4]=='i'||a[i+4]=='o'||a[i+4]=='u') // eğer ilk sesli harften sonra 3 adet sessiz harf geliyorsa ..
{
printf("%c%c - ",a[i+1],a[i+2]); i+=2;}}}
}// ilk sesli harfin yanındaki iki sessiz harften sonra tire koyar
Hocam şu algoritmayı arıyorum sabahtan beri. C#'a geçirince buradan yazarım. ^^
YanıtlaSilHocam yazdığınız algoritma eksik ve sorunlu. Düzeltip paylaşıyorum;
YanıtlaSilhttp://turkumturkcekonusurum.blogspot.com/2018/03/c-metni-veya-kelimeyi-hecelerine-ayr.html