PDA

View Full Version : تابع strlen



suraty
پنج شنبه 26 آبان 1390, 11:02 صبح
سلام این برنامه با استفاده از تابع strlen طول p را برمی گرداند.
اما چرا در خروجی عدد 13 را چاپ می کند؟

#include"iostream.h"
#include"conio.h"
#include"string.h"
int main(){
char p[3];
cout<<strlen(p)<<"\n";
return 0;
}

Arcsinos
پنج شنبه 26 آبان 1390, 11:20 صبح
سلام

فکر کنم این تابع برای رشته هاست ، و فکر کنم اینطوری کار میکنه که تا زمانی که با NULL یا '0\' نرسیده باشه میاد کاراکتر ها رو میشماره ، تو کامپیوتر من جواب 1 بود و تو کامپیوتر تو 13.

من اومدم این کارو کردم char p[3]={'\0'}; تو هم بعد از اینکه هر کاری کردی آخرین کاراکتر رو NULL کن تا جواب درست در بیاد

موفق باشی

حامد مصافی
پنج شنبه 26 آبان 1390, 12:13 عصر
جوابی که من از این کد گرفتم عدد ۳ بود. البته با g++
احتمالا کامپایلر منسوخ TC++ رفتار نا متعارفی یا قدیمی در این مورد عرضه می‌کند.