Şimdi Ara

invalid conversion from character to constant character

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
704
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • merhaba arkadaslar, C de karakterle ilgili bir sorunum var. ödevin konusu; bir string girilicek sonra bir tane harf girilecek ve recursive function ile biz yazdıgımız stringden, en basta girilen bi karakteri silerek yazıcaz. kodum şu;

    "
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>

    void func(char* , char*);

    int main(void) {

    char sentence[50];

    char ch;

    printf("Enter a sentence\n");

    fflush(stdin);
    gets(sentence);

    printf("Enter a character :\n");

    scanf("%c", &ch);

    func(sentence, &ch);

    getch();

    return 0;

    }

    void func(char* string, char* chf) {

    if(string[0]=='\0')

    return ;


    if(strcmp(string[0],chf)==0)

    printf("%c", string[1]);

    else

    return func(string++,chf);

    printf("%c", string[0]);

    }

    "

    if(strcmp(string[0],chf)==0) kodunun içinde cannot convert from char to cons char hatası alıyorum. deliricem birazdan :). neden yanlıs yaptıgımı söyleyip yardım ederseniz coks evinirim. şimdiden tesekkurler...







  • if(strcmp(string[0],chf)==0)
    satırı ile ne yapmak istiyorsun? Sadece iki karakteri karşılaştırmak istiyorsan if(string[0] == chf) koşulu işini görür.

    strcmp in başlığı şu: int strcmp ( const char *, const char *);
    Sen ise şöyle çağırmışsın: int strcmp (char, char *);

    Gördüğün gibi ilk parametre hatalı ama zaten bu fonksiyona ihtiyacın yok.
  • bikac düzeltme yaptım dediginiz fonksiyonuda düzelttim ama program calıstıktan sonra stringi ve karakteri giriyorum ardından sonsuz döngüye giriyor

    #include <stdio.h>
    #include <conio.h>
    #include <string.h>

    void func(char* , char);

    int main(void) {

    char sentence[50];

    char ch;

    printf("Enter a sentence\n");

    fflush(stdin);
    gets(sentence);

    printf("Enter a character :\n");

    scanf("%c", &ch);


    func(sentence, ch);

    getch();

    return 0;

    }

    void func(char* string, char chf) {

    if(string[0]=='\0')

    return ;


    if(string[0]==chf)

    printf("%c", string[1]);

    else
    printf("%c", string[0]);

    return func(string++,chf);


    }




  • Ben mesajımdaki kodda ufak bir hata yapmışım ama onu düzeltsekte sonsuz döngüye giriyor. Kodda yazım hatasından ziyade algoritma hatası var.
    Yapmak istediğini tam olarak anlayabilsem yardımcı olacağım da...
  • yani olay su ben mesela "benimadimburak" girdim. sonra benden bi karakter istedi "a" harfini girdim. bana recursion yöntemiyle en son olarak "benimdimburk" basıcak. o hafleri yok sayıcak yani.
  • abi sorunumu hallettim. return func(string++,chf); kodu içinde string++ deilde string+1 yazdım. ve calıstı bu nasıl iş ben anlamadım...
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.