PDA

View Full Version : چرا تا strlen برای کاراکتر n\ و ... طول یک را بر می گرداند اما در کد زیر اینگونه نیست؟



complexcoding
دوشنبه 29 اسفند 1390, 14:47 عصر
سلام دوستان
چرا تا strlen برای کاراکتر n\ و ... طول یک را بر می گرداند اما در کد زیر اینگونه نیست؟ و مقدار 3 را در خروجی بر می گرداند؟

Printf(" %d ",strlen(" ' \n ' "));

بهروز عباسی
دوشنبه 29 اسفند 1390, 15:04 عصر
سلام دوستان
چرا تا strlen برای کاراکتر n\ و ... طول یک را بر می گرداند اما در کد زیر اینگونه نیست؟ و مقدار 3 را در خروجی بر می گرداند؟

Printf(" %d ",strlen(" ' \n ' "));
دوست عزیز این کدی که من دیدم حق داره 4 هم برگر دونه:لبخند:
اگه کد همین باشه
,strlen(" ' \n ' ") قبل و بعد از
\n دوتا فضای خالی وجود دارد
اینجوری بنویس ببین درست نمیشه(الان c دم دستم نیست):
Printf(" %d ",strlen('\n'));

complexcoding
دوشنبه 29 اسفند 1390, 15:21 عصر
با تشکر از کمک شما ولی اگر همون کد خودم رو فضای خالیش رو برداریم مقدار طول کاراکتر چقدر خواهد شد من فاصله دادم برای خوانایی بیشتر .. یعنی حق با شماست ولی بدون فاصله همون کد خودم چطوری مقدار 3 رو بر می گردونه چون این کد رو از درون یک کتاب پیدا کردم و خروجیش درون کتاب 3 نوشته شده بود و من اصلا تستش نکردم (کتاب کنکور) :قلب:

بهروز عباسی
دوشنبه 29 اسفند 1390, 16:08 عصر
با تشکر از کمک شما ولی اگر همون کد خودم رو فضای خالیش رو برداریم مقدار طول کاراکتر چقدر خواهد شد من فاصله دادم برای خوانایی بیشتر .. یعنی حق با شماست ولی بدون فاصله همون کد خودم چطوری مقدار 3 رو بر می گردونه چون این کد رو از درون یک کتاب پیدا کردم و خروجیش درون کتاب 3 نوشته شده بود و من اصلا تستش نکردم (کتاب کنکور) :قلب:
والا منم پوکیدم اون کدی که من گذاشتم امتحان کردی(متاسفانه c ندارم الان)

بهروز عباسی
دوشنبه 29 اسفند 1390, 16:21 عصر
چرا تا strlen برای کاراکتر n\ و ... طول یک را بر می گرداند اما در کد زیر اینگونه نیست؟به نظر من که \n اصلاً کاراکتر محصوب نمیشه بلکه به عنوان یه دستور باید خونده بشه


اینــــــــــــــــــــــ ــــو (http://www.hpkclasses.ir/Courses/cpp/cpp0600.html#a4)ببین

complexcoding
دوشنبه 29 اسفند 1390, 16:36 عصر
به نظر من که \n اصلاً کاراکتر محصوب نمیشه بلکه به عنوان یه دستور باید خونده بشه
الان تازه گرفتم چی شد اگر خود (' ') با یک space وسط اون می شه 3 تا کاراکتر و منم کامپایلر ندارم تئوری تمرین می کنم ..:تشویق: ممنون

بهروز عباسی
سه شنبه 01 فروردین 1391, 06:03 صبح
الان تازه گرفتم چی شد اگر خود (' ') با یک space وسط اون می شه 3 تا کاراکتر و منم کامپایلر ندارم تئوری تمرین می کنم ..:تشویق: ممنون
خیلی جالبه یعنی space سه تا کرکتره؟

درمورد رشته مثلاً اگه باشه 'A' در اصل اینه 'A\0' که '\0' خودش فکر کنم یک کرکتر حساب بشه

mahan19
سه شنبه 01 فروردین 1391, 06:41 صبح
عرض به حضور شما :
\n یک کاراکتر حساب میشه + دو تا ' که میشه 3 کاراکتر !!
اگه واسه خوانایی کد ، دو تا فضای خالی هم گذاشتید ، میشود 5 تا !!! هر فضای خالی یک کاراکتره عزیزم.