تابع strtok(" ") برای من قابل فهم نیست. در مثالی که استاد فرمودند این تابع token را یکی جلو میبرد. اما چطور فقط یک پارامتر گرفته و چطور token را یکی جلو برده؟
سلام
در اینجا باید به یک نکته توجه کنید که فقط برای بار اول نیاز است که رشته به تابع پاس داده شود، برای دفعات بعدی تنها مشخص کردن delimiterها کافی میباشد، زیرا این تابع وضعیت رشته را درون خود دارد. یعنی این:
$token = strtok($string, ' ');
خروجی متغیر بالا با توجه به رشته پاس داده شده به آن کلمه 'Hello' میباشد. حال برای پیمایش داخل رشته از حلقه while استفاده کردند که با توجه به نکته بالا فقط کافیه delimiter آن مشخص گردد تا باقی کلمات چاپ شوند.
این کد میاد و هر جا در رشته string فاصله میبینه، قبل از اون رو داخل token میریزه
اما در کد دوم درون حلقه این کد رو داریم
$token = strtok(' ');
ما در strtok مشخص نکردیم که فاصله رو از کدوم رشته بگیره! مواردی هم که در کد قبل در token میریزیم فاصله بعد از کلمات حذف شده. یعنی اولین کلمه (یا همان hello) وارد token شده
اینجا چه اتفاقی میافته؟
اصلا راهی هست که مرحله به مرحله اجرای کد رو بتونیم ببینیم و تحلیل کنیم؟
سیدرضا بازیار۱۴ بهمن ۱۳۹۹، ۱۹:۰۱
سلام خیلی ساده اگ بخوام بگم به کد زیر نگاه کنید متوجه میشید :