[]

verilen array'de n'inci kelimeyi bulmaca - c sorusu

Selamlar,

Kullanıcıdan cümle ve sayı alıyoruz. o sayı'ncı kelimeyi göstermesini istiyorum programın. Bişeyler yazdım ama bi türlü çalışmıyo. Şu an kodu calistirmayi bile beceremedim, ne vereceğinden ziyade neden bişeyler vermediği sorum sanırım.





#include <stdio.h>
#include <stdlib.h>
void fx (char uzun[], int x, char kisa[])
{
int j; int i;
int u;
u = strlen(uzun);
int cunt = 0;
int bas; int son;
for(i = 0 ; i < u ; i++){
if(uzun[i] == ' ')
cunt++;
if(cunt == x-1)
{
bas = i; //kelimenin hangi bosluklar
//arasinda oldugunu bas ve son'a
}
if(cunt == x)
{
son = i;
}
}
int amk = 0;
for(j = bas; j < son - bas; j++)
{
kisa[amk] = uzun[j]; //kisaya iki bosluk arasini attim
amk++;
}


}
int main(void) {

char sentence[150];
int nth;
gets(sentence);
scanf("%d",&nth);
char yeni[30];

fx(sentence, nth, yeni);

puts(yeni);



return EXIT_SUCCESS;
}

 
fx fonksiyonunun sonundaki for döngüsünde "j < son-bas" değil de "j < son" olmalı.


  • talemon  (03.01.18 15:09:35) 
@herif count'dan daha kısa olduğu için :D
@talemon haklısın düzelttim.

make all
make: Nothing to be done for 'all'.

şöyle bir şey diyo compiler bana, online compilerda da olmadı. çok temel bişey yanlış muhtemelen onu bulamıyorum. kod hiç çalışmıyo direk. çalışsa düzelticem zaten cümlenin neresini nasıl aldığını.
  • stanhiver  (03.01.18 15:17:54 ~ 15:19:05) 
a-ah online compiler'da olmaya başladı bi anda. hatalı ama düzeltebilirim sanıyorum.


  • stanhiver  (03.01.18 15:20:53) 
sorumu daralttım su an:

bas ve son'u yanlis buluyo ama doğru gibi sanki? neden olmuyo?
  • stanhiver  (03.01.18 15:27:15) 
Böyle yapmak istemiyordum ama refaktöre edip bazı hataları düzelttim:
pastebin.com

bu kod son kelimeyi de yakalıyor.
ancak boş girdi ve çok uzun girdilerde oluşabilecek hatalarla ilgili değişiklik yapmadım.
  • talemon  (03.01.18 15:36:38) 
@talemon benim kodumun son hali son kelimeyi yakalamıyodu. bi de {}'ları yanlış kullanmışım.

çok iyi oldu bu. çok teşekkürler.
  • stanhiver  (03.01.18 15:57:49) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.