ممنون ...
خيلي جالبه ... !
يه خوردهه اي توي دركش مشكل دارم ، اگر كمك كنيد ممنون مي شم.
اين تابع يه رشته رو مي گيرهه و در آرگمان ورودي بهش يه pointer اختصاص مي دهه ، كه بتونه با رشته كار كنه .
متغيير value رو با مقدار اوليه ي 0 تعريف مي كنه و مقدار pointer رو در متغيير ch كه از نوع char هست قرار مي دهه .
حالا مشكلات از اينجا شروع مي شه !! ( اين تابع يه بار كه تا آخر رفت مقدار رو بر مي گردونه ديگه ، اما با توجه به حلقه بينهايتي كه گذاشته ، بنظر مي رسه چند بار مقدار برمي گردونه ، كه كمي عجيبه و اينكه چطوري از حلقه بينهايته در مي ياد ؟!!
کد:
while (ch == ' ' || ch == '\t')
ch = *(++ptr);
اينجا ،فضا هاي خالي رو در واقع دارهه حذف مي كنه ... ( اما نمي دونم چطور فضاي خالي مابين حروف رو حذف مي كنه ؟!! )
اين حلقه ي بينهايت يعني چي ؟!
وقتي خط برنامه به return رسيد مگر همه چيز نبايد تمام بشه ؟!
خط هاي بعدي هم با شروطي كه گذاشته به يه سري مقاديري مي رسه كه مي ريزهه تو value .
حالا 4 بار شيفت به چپ چكار مي كنه ؟ ( *16)
اين كارا روي كاراكتر ها جواب مي دهه ؟ يعني چي ؟
آخرهه سر اين كاراكتر ها چطور به مقدار عددي در Value اعمال مي شن ؟
بعد از return اي كه اين نوشته ، يعني برگشتي هست ، كه دوبارهه مقدار pointer رو اضاف مي كنه و مي ريزهه تو ch و دوبارهه ادامه ي ماجرا ...
اما فضاي خالي مابين رو هم نفهميدم چطور پاك مي كنه ؟!!
پس كجاش رو فهميدم ؟!
اگر كسي مي تونه در درك كردنش بهم يه help اي برسونه ،ممنون مي شم ...
موفق باشيد.
يا علي.