طول رشته C – چگونه اندازه یک رشته را در C پیدا کنیم


هنگام کار با رشته ها در C، باید بدانید که چگونه طول آنها را پیدا کنید.
یافتن طول یک رشته در C به دلایل زیادی ضروری است.
ممکن است نیاز به دستکاری رشته داشته باشید و بسیاری از توابع دستکاری رشته به طول رشته به عنوان آرگومان نیاز دارند. همچنین ممکن است لازم باشد ورودی کاربر را تأیید کنید، دو رشته را مقایسه کنید، یا حافظه را به صورت پویا مدیریت و تخصیص دهید.
در این مقاله با روش های مختلف برای یافتن طول رشته در C آشنا خواهید شد.
رشته ها در C چیست؟
برخلاف سایر زبان های برنامه نویسی، C نوع داده رشته ای داخلی ندارد.
در عوض، رشتهها در C آرایههایی از کاراکترها هستند که در پایان کاراکتری به نام پایاندهنده تهی /0
دارند.
راه های زیادی برای ایجاد رشته در C وجود دارد. در اینجا مثالی از یک راه وجود دارد:
char greeting[] = "Hello" ;
در کد بالا، من یک آرایه کاراکتر به نام greeting
با استفاده از نوع داده char
و به دنبال آن براکتهای مربع، []
ایجاد کردم.
سپس رشته Hello
را که با نقل قول های دوتایی احاطه شده است را به greeting
اختصاص دادم.
در این مثال، اندازه آرایه به طور صریح مشخص نشده است - اندازه با اندازه رشته اختصاص داده شده به آن تعیین می شود. همچنین، پایان دهنده تهی، \0,
به طور خودکار به انتهای رشته اضافه می شود.
فایل هدر string.h
در C چیست؟
فایل هدر string.h
توابعی را برای دستکاری و کار با رشته ها فراهم می کند.
این شامل توابعی است که وظایفی مانند کپی کردن و الحاق را کامل می کند. همچنین توابعی را برای یافتن طول یک رشته ارائه می کند، مانند strlen()
که نحوه استفاده از آن را در بخش زیر یاد خواهید گرفت.
برای استفاده از توابع از string.h
، باید آن را در ابتدای فایل خود به این صورت قرار دهید:
# include <stdio.h> # include <string.h> int main ( void ) { // Your code goes here }
چگونه طول رشته را در C با استفاده از تابع strlen()
پیدا کنیم
تابع strlen()
در فایل هدر string.h
تعریف شده است و برای یافتن طول یک رشته استفاده می شود.
بیایید مثال زیر را در نظر بگیریم:
# include <stdio.h> # include <string.h> int main ( void ) { char greeting[] = "Hello" ; int length = strlen (greeting); printf ( "The length is: %d\n" , length); } // Output: // The length is: 5
در مثال بالا، ابتدا فایل هدر stdio.h
را قرار دادم تا بتوانم از توابع ورودی/خروجی مانند printf()
استفاده کنم. من همچنین فایل هدر string.h
را اضافه کردم تا بتوانم از تابع strlen()
استفاده کنم.
در داخل تابع main()
یک آرایه greeting
ایجاد کردم و رشته Hello
را ذخیره کردم.
سپس، تابع strlen()
را فراخوانی کردم و greeting
به عنوان آرگومان ارسال کردم – این همان رشته ای است که می خواهم طول آن را پیدا کنم.
در نهایت، من از مقدار بازگشتی در length
استفاده کردم و آن را با استفاده از تابع printf()
چاپ کردم.
توجه داشته باشید که تابع strlen()
تعداد کاراکترهای رشته را به استثنای پایان دهنده تهی ( \0
) برمی گرداند.
نحوه یافتن طول رشته در C با استفاده از عملگر sizeof()
راه دیگر برای یافتن طول رشته در C استفاده از عملگر sizeof()
است.
عملگر sizeof()
اندازه کل یک رشته را بر حسب بایت برمی گرداند.
بیایید مثال زیر را در نظر بگیریم:
# include <stdio.h> int main ( void ) { char greeting[] = "Hello" ; int size = sizeof (greeting); printf ( "The size is %d bytes \n" , size); } // Output: // The size is 6 bytes
در مثال زیر، sizeof(greeting)
کل اندازه آرایه greeting
را در بایت برمیگرداند - از جمله عملگر تهی، \0
.
این همیشه خیلی مفید نیست.
برای حذف این کاراکتر، باید یکی را از size
کل کم کنید:
# include <stdio.h> int main ( void ) { char greeting[] = "Hello" ; int length = sizeof (greeting) - 1 ; printf ( "The length is %d\n" , length); } // Output: // The length is 5
اگرچه عملگر sizeof()
نیازی به گنجاندن فایل هدر string.h
مانند strlen()
ندارد، اما اندازه کل آرایه و نه طول رشته را برمی گرداند.
اندازه کل آرایه شامل پایان دهنده تهی، \0
است، در حالی که طول رشته، تعداد کاراکترهای قبل از پایان دهنده تهی است.
چگونه با استفاده از حلقه while
، طول رشته را در C پیدا کنیم
راه دیگر برای یافتن طول رشته C استفاده از حلقه while
است.
روش کار این است که شما به تکرار روی کاراکترهای یک رشته ادامه می دهید تا زمانی که به انتهای آن برسید و با پایان دهنده تهی \0
روبرو شوید.
بیایید به مثال زیر نگاه کنیم:
# include <stdio.h> int main ( void ) { char greeting[] = "Hello" ; int length = 0 ; while (greeting[length] != '\0' ) { length++; } printf ( "The length is %d" , length ); } // Output: // The length is 5
بیایید نحوه عملکرد حلقه را تحلیل کنیم.
من یک متغیر شمارنده، length
، را به 0
مقداردهی کردم. این متغیر طول رشته را ذخیره می کند.
شرط حلقه while
، greeting[length] != '\0'
، تحلیل می کند که آیا کاراکتر در length
شاخص رشته با پایان دهنده تهی \0
برابر نیست.
اگر اینطور نباشد، متغیر length
افزایش مییابد و حلقه ادامه مییابد و به کاراکتر بعدی در greeting
میرود.
حلقه while
روی greeting
تکرار می شود تا زمانی که با \0
روبرو شود و سپس تکرار متوقف می شود.
نتیجه
در این مقاله یاد گرفتید که چگونه طول یک رشته را در C پیدا کنید.
شما یاد گرفتید که چگونه از تابع strlen()
استفاده کنید، که تعداد کاراکترهای رشته را به استثنای پایان دهنده تهی برمی گرداند.
همچنین یاد گرفتید که چگونه از عملگر sizeof()
استفاده کنید که همیشه نتیجه دلخواه را برمیگرداند زیرا شامل پایاندهنده تهی در طول است.
در نهایت، یاد گرفتید که چگونه از حلقه while
برای پیدا کردن طول یک رشته استفاده کنید. یک حلقه کاراکترهای رشته را میشمرد تا زمانی که به پایاندهنده تهی برسد.
با تشکر از شما برای خواندن، و کد نویسی مبارک!
ارسال نظر