PDA

View Full Version : جدا سازی زیر رشته از یک رشته در زبان C



Developer Programmer
یک شنبه 06 آذر 1384, 22:49 عصر
سلام
می خوام تابع(function) بنویسم
1) که بتونه با شروع از یک کراکتر و به طول معین، زیر رشته ای را از یک رشته جدا کند (SubString)
2) می خوام مکان شروع یک زیر رشته رو در رشته پیدا کنم (Position)

چون سالها است با C کار نمی کنم ، در حلقه ها و بازگرداندن آرایه به عنوان خروجی تابع دچار و نظیر آنها مشکل میشم.
جستجو در سایت هم نتیجه ای نگرفتم

ممنون

aakh1361
دوشنبه 07 آذر 1384, 01:51 صبح
1 - منظورت اینه که یک کلمه رو از رشته حذف کنه ؟ http://asefsoft.com/qsimages/169.gif http://asefsoft.com/qsimages/169.gif
مثل


char * s ="Hello people my country";
بعد از حذف
char * s ="Hello people country";

2 - جواب این سوالت رو در تایپ کلمات کلیدی برای یکی از دوستان نوشتم


چون سالها است با C کار نمی کنم

بهتره دوباره شروع به برنامه نویسی با سی کنی چون کسی که سی بلد نباشه نمی تونه یک برنامه نویس حرفه ای بشه http://asefsoft.com/qsimages/83.gif http://asefsoft.com/qsimages/83.gif

Developer Programmer
دوشنبه 07 آذر 1384, 15:31 عصر
سلام

منظورت اینه که یک کلمه رو از رشته حذف کنه
خیر منظورم این بود که یک زیر رشته رو از رشته برگردونه مثل mid در بیسیک و copy در دلفی و substr در فاکس پرو

بهتره دوباره شروع به برنامه نویسی با سی کنی چون کسی که سی بلد نباشه نمی تونه یک برنامه نویس حرفه ای بشه
تبدیل یک رشته عددی به عدد StrToInt و مشکلات ان اشکم رو در آورده، دلتون خوشه زبون دارید ؟ :خنده:

harry potter
سه شنبه 08 آذر 1384, 15:28 عصر
شما میتوانید از طریق آرایه ها و با استفاده از for به راحتی یک زیر رشته از رشته رو برگردانید :لبخندساده :لبخندساده

Marine
سه شنبه 08 آذر 1384, 16:51 عصر
می خوام تابع(function) بنویسم
1) که بتونه با شروع از یک کراکتر و به طول معین، زیر رشته ای را از یک رشته جدا کند (SubString)
2) می خوام مکان شروع یک زیر رشته رو در رشته پیدا کنم (Position)




int find(const char *s1,const char *s2)
{
int i=0;
while (*s1!='\0')
{
if (strncmp(s1,s2,strlen(s2))==0)
return i;
else if (*(s1+1)=='\0')
return -1;
s1++;
i++;
}
}






تبدیل یک رشته عددی به عدد StrToInt و مشکلات ان اشکم رو در آورده، دلتون خوشه زبون دارید ؟


تبدیل یک رشته عددی به عدد ؟!!!!
فکر نمیکنید دارید کار طاقت فرسایی انجام میدید ؟! :لبخند:

در ضمن عدم توانایی استفاده از ابزار دلیل بر ضعف ابزار نیست

Developer Programmer
سه شنبه 08 آذر 1384, 16:54 عصر
سلام
ممنون از زحمتی که کشیدید
علت سردرگم شدنم واسه اینه که استادشون(!!!) گفته نباید از توابع C استفاده کنید! یعنی هرچی لازم باشه رو خودتون بنویسید :(

Marine
سه شنبه 08 آذر 1384, 20:31 عصر
اگه نخواستی از تابع strncmp استفاده کنی میتونی با یه if شبیه سازیش کنی

aakh1361
پنج شنبه 10 آذر 1384, 02:33 صبح
char * Mid(char *s,int start,int len)
{
int a,b=0;
static char Rs[64]={0,};
for(a=start;a<start+len;a++)
{
Rs[b]=s[a];
b++;
}
return Rs;
}
char str[]="Hello 1234567890";
int main()
{
printf("%s\n",Mid(str,6,5));
return 0;
}





دلتون خوشه زبون دارید ؟ :خنده:

http://asefsoft.com/qsimages/105.gif http://asefsoft.com/qsimages/105.gif
خدای زبونهاست http://asefsoft.com/qsimages/112.gif http://asefsoft.com/qsimages/112.gif http://asefsoft.com/qsimages/112.gif http://asefsoft.com/qsimages/112.gif http://asefsoft.com/qsimages/112.gif

Developer Programmer
پنج شنبه 10 آذر 1384, 11:21 صبح
تشکر از همه سروران و دانشمندان سایت!

aakh1361
جمعه 11 آذر 1384, 17:21 عصر
تشکر از همه سروران و دانشمندان سایت!

اگر منظورت منم که من شاگردی بیش نیستم