Çözüldü C programlama cümledeki kelimelerin baş harflerini alma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

dente44

Centipat
Katılım
11 Aralık 2019
Mesajlar
2
Girilen bir cümlede ki kelimelerin baş harflerini alıp kısaltarak yazdıran programı yaptım fakat sadece 2 kelime girince baş harflerini veriyor, 2 veya fazla girince olmuyor. Bunu nasıl düzeltebilirim? Ne kadar kelime girilirse o kadar çıksın istiyorum.
Kod:
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
void main()
{
    int i;
    char cum[100];
    printf("Cumle Giriniz:");
    gets(cum);

    for(i=0; i<strlen(cum);i++)
    {
        if(cum[i]==' ')
            printf("%c%c",cum[0],cum[i+1]);
    }

    printf("\n");

}
 
Son düzenleyen: Moderatör:
Çözüm
Y
C:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
void main()
{
    char cum[100];
    printf("Cumle Giriniz:");
    gets(cum);

    for(int i=0; i<strlen(cum);i++)
    {
        if(i==0)
            printf("%c%c",cum[0]);
        if(cum[i]==' ')
            printf("%c%c",cum[i+1]);
    }

    printf("\n");

}
2'den fazla girilince olmuyor dediğin, ilk harfi tekrar tekrar eklemesidir büyük ihtimalle.
Bu arada "cümle" kelimesinin kısaltması garip olmuş biraz, değiştir bence onu. :D
C:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
void main()
{
    char cum[100];
    printf("Cumle Giriniz:");
    gets(cum);

    for(int i=0; i<strlen(cum);i++)
    {
        if(i==0)
            printf("%c%c",cum[0]);
        if(cum[i]==' ')
            printf("%c%c",cum[i+1]);
    }

    printf("\n");

}
2'den fazla girilince olmuyor dediğin, ilk harfi tekrar tekrar eklemesidir büyük ihtimalle.
Bu arada "cümle" kelimesinin kısaltması garip olmuş biraz, değiştir bence onu. :D
 
Son düzenleyen: Moderatör:
Çözüm
Eklediğin satırın açıklamasını yapar mısın
C:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
void main()
{
    char cum[100];
    printf("Cumle Giriniz:");
    gets(cum);

    for(int i=0; i<strlen(cum);i++)
    {
        if(i==0)
            printf("%c%c",cum[0]);
        if(cum[i]==' ')
            printf("%c%c",cum[i+1]);
    }

    printf("\n");

}
2'den fazla girilince olmuyor dediğin, ilk harfi tekrar tekrar eklemesidir büyük ihtimalle.
Bu arada "cümle" kelimesinin kısaltması garip olmuş biraz, değiştir bence onu. :D
 
"printf"e "cum[0]" kodunu cümlenin ilk harfini yazdırabilmek için eklemişsin ama bunu eklediğin "if" kodu her boşluk görüşünde çalışıyor ve tekrar tekrar boşluktan sonraki harften önce cümlenin ilk harfini ekliyor. Cümlenin ilk harfini 1 kez yazması için yeni bir "if" ekliyorsun ve sadece cümlenin ilk elemanında çalışıp 1 kez yazdırıyor ve işi bitiyor.
 
#include<stdio.h>
#include<conio.h>

main()
{
char yazi[100];
printf("bir cumle giriniz:");
gets(yazi);

for(int i=0;yazi!='\0';i++)
{
if(i==0){

printf("%c ",yazi[0]);
}
if(yazi==' '){

printf("%c ",yazi[i+1]);
}

}

}
 
merhabalar bu program da 1 cümle yazınca bitiyor benim istedigim ben enter tusuna basana kadar surekli bana cumle girin desin ve her girdigim cumledeki kelimelerin baş harfini alsın ben ne zaman enter tusuna basarsam ozaman sonlansın nasıl yazabilirim.
Örnek;

Bir dizgi(cümle) giriniz : Turkiye Buyuk Millet Meclisi

Kisaltma : TBMM

Bir dizgi(cümle) giriniz : Avrupa Birliği

Kisaltma : AB

Bir dizgi(cümle) giriniz : Sinavda Basarili Olacagim

Kisaltma : SBO

Bir dizgi(cümle) giriniz : ⏎

Kisaltma :
 

Yeni konular

Geri
Yukarı