Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
704
Tıklama
0
Öne Çıkarma
invalid conversion from character to constant character
Q
14 yıl
Onbaşı
Konu Sahibi

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...

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



G
14 yıl
Yarbay

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.


Bu mesaja 1 cevap geldi.
Q
14 yıl
Onbaşı
Konu Sahibi

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);


}


Bu mesaja 1 cevap geldi.
G
14 yıl
Yarbay

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...


Bu mesaja 1 cevap geldi.
Q
14 yıl
Onbaşı
Konu Sahibi

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.


Bu mesaja 1 cevap geldi.
Q
14 yıl
Onbaşı
Konu Sahibi

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...



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.