strchr(); fonksiyonunun kullanımı

Başlatan berkay_91, 17 Ağustos 2015, 12:01:27

berkay_91

mrb, strchr() fonksiyonunu kullanarak bir stringin son 3 harfini basmak istiyorum, bütün karakterleri birbirinden farklı olan bir string için yazdığım program başarıyla çalıştı ancak içinde aynı karakterleri bulunduran bir string(str[] = "ABC DEF ABC";) için programı çalıştırdığımda sadece son 3 karakteri basmıyor ne yapmalıyım?

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

int main (){

   char str[] = "ABC DEF GHI";
   //char str[] = "ABC DEF ABC";
   char *ret;

   ret = strchr(str, str[strlen(str)-3]);

   printf("%s", ret);
   

   getch();
   return 0;

}

rodeomusty

Böyle kullanabilirsin;
#include <stdio.h>
#include <string.h>

int main(void)
{
   char str[] = "ABC DEF ABC";
   char *ret;
   ret=&str[strlen(str) - 3];
   printf("%s",ret);
   return 0;
}

Gökhan BEKEN

#2
Alıntı yapılan: berkay_91 - 17 Ağustos 2015, 12:01:27
bir stringin son 3 harfini basmak istiyorum

Amaç sadece bu ise, şöyle yapılabilir:
char str[] = "ABC DEF GHI";
char str2[3];
sprintf(str2,"%s",&str[strlen(str)-3]);
printf("%s",str2);


daha az işlemci gücü:

char str[] = "ABC DEF GHI";
char str2[3];
str2[0]=str[strlen(str)-3];
str2[1]=str[strlen(str)-2];
str2[2]=str[strlen(str)-1];

printf("%s",str2);


düzeltme: yanışlıkla strlen yerine sizeof yazmışım düzelttim.
Özel mesaj okumuyorum, lütfen göndermeyin.