پیدا کردن یک کاراکتر در یک رشته

z.ghayoumi

New Member
به نام پروردگار

سلام علیکم .
من در نوشتن برنامه ای به زبان c به مشکل برخوردم .

برنامه ای به زبان c،که" یک رشته و یک کارکتر "رو از ورودی دریافت بکند
وسپس محل های وجود این کارکتر رو در رشته مورد نظر بگه . فقط فرم کلی این برنامه رو یه کمی توضیح بفرمایید .

من واقعا نیاز دارم کسی منو راهنمایی بکنه .

با سپاس فراوان .
with best wishes zahra
 
آخرین ویرایش:

z.ghayoumi

New Member
واقعا سعی کردم خودم بنویسم ،ولی به مشکل کوچیکی برخوردم .
(من اومدم یک رشته دریافت از ورودی دریافت کردم ،و اون کارکتر خاص از ورودی رو هم مثل رشته -به طول 2 - گرفتم ، بعد گفتم تمام رشته وارد شده رو بررسی کنه string[i .ببینه اگه با اون کارکتره -رشته به طول 2 - برابر شد . (با استفاده از تابع مقایسه دو رشته: strcmp) ، جاش رو چاپ کنه .


کد:
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
char string[100], s[10] ;
int i ;
printf("enter string :" ) ;
gets(string) ;
printf("enter ch :") ;
scanf("%s" ,& s) ;
for(i=0 ;i<=10 ;i++ ){
if(strcmp(string, s[1])=0 ){
printf("%4d" ,& i) ;
}}
getch() ;
return 0 ;
}
این رو براش نوشتم ،ولی فقط اون خطی که از تابع " strcmp " استفاده کردم ، خطا داره .
من می خواهم یه کسی منو راهنمایی بکنه .

با سپاس فراوان .
with best wishes zahra
 
آخرین ویرایش:

saalek110

Well-Known Member
با سلام و خسته نباشید.
ببینید کد زیر از help توربوسی است:
کد:
#include <string.h>
 #include <stdio.h>

int main(void)
 {
    char[COLOR="Red"] *[/COLOR]buf1 = "aaa",[COLOR="Red"] *[/COLOR]buf2 = "bbb", [COLOR="#ff0000"]*[/COLOR]buf3 = "ccc";
    int ptr;

    ptr = strcmp(buf2, buf1);
    if (ptr > 0)
       printf("buffer 2 is greater than buffer 1\n");
    else
       printf("buffer 2 is less than buffer 1\n");

    ptr = strcmp(buf2, buf3);
    if (ptr > 0)
       printf("buffer 2 is greater than buffer 3\n");
    else
       printf("buffer 2 is less than buffer 3\n");

    return 0;
 }

در ضمن در سی برای بررسی صحت تساوی از == استفاده می کند. و = باعث تاثیر است نه بررسی. در:
کد:
if(strcmp(string[i], s[1])=0 ){
 

emad_67

Member
این رو براش نوشتم ،ولی فقط اون خطی که از تابع " strcmp " استفاده کردم ، خطا داره .
من می خواهم یه کسی منو راهنمایی بکنه
خوب تابع strcmp متغیر ورودیش یک رشته است نه یه کاراکتر اگه شما بخواین بهش کاراکتر هم بدید باید آدرس اونو ارسال کنید تا به صورت یه اشاره گر دریافتش کنه ایجوری:
کد:
strcmp(&string[i],&s[1]);
من با c آشنایی زیادی ندارم و اونو با c++ نوشتم حالا اگه با c++ مار کردی اونو به c تبدیل کن
کد:
#include <iostream.h>
#include <conio.h>
#include <string.h>
void main()
{
   char s[80],ch ;
   cout<<"enter string:";
   cin.getline(s,80);
   cout<<"enter character:";
   cin>>ch;
   for(int i=0;i<strlen(s);i++ )
      if(s[i]==ch)
         cout<<ch<<" found in index "<<i<<endl;
}
 
آخرین ویرایش:

MnavidM

Active Member
جناب z.ghayoumi ورودتون رو به انجمن تبریک میگم.

سری به قوانین سایت نیز بزنید.

عنوان تاپیک رو تغییر دادم ، سعی کنید عنوان مناسب با سوالتون باشه.

با تشکر.
نوید.
 

z.ghayoumi

New Member
به نام پروردگار

با سلام .mnavidm ممنونم از شما . چشم حواسم نبود .
بابت تغییر عنوان تاپیک هم متشکرم ،بهتر شد .

اما . . . سالک جان ، از راهنمایی شما متشکرم .همون طور که گفتید خوندن help توربوسی خیلی بهم کمک کرد .
و emad-67 ، بله با c++ هم آشنایی دارم .برنامه ات رو خوندم ، برام مفید بود .

خیلی سپاسگزارم که وقت گذاشتید وسوال من رو خوندید .
with best wishes zahra
 

جدیدترین ارسال ها

بالا