C Print String – چگونه یک رشته را در C چاپ کنیم
چاپ رشته ها یک عملیات اساسی در برنامه نویسی است. این به شما کمک می کند اطلاعات را خروجی، تحلیل و اشکال زدایی کد خود، و نمایش اعلانات به کاربران.
در این مقاله با تکنیک های مختلف چاپ رشته ها در C آشنا خواهید شد.
رشته در C چیست؟
رشته، دنباله ای از کاراکترها، مانند حروف، اعداد یا نمادها است که با هم گروه بندی می شوند. برای نمایش متن در برنامه ها استفاده می شود.
رشتهها یک نوع داده داخلی در C نیستند. در عوض، آنها بهعنوان آرایههایی از کاراکترها نمایش داده میشوند که با یک کاراکتر خاص به نام پایاندهنده تهی، \0
خاتمه مییابند.
در اینجا مثالی از نحوه ایجاد رشته در C آورده شده است:
char greeting[] = "Hello world!" ;
در کد بالا، یک آرایه کاراکتر به نام greeting
را اعلام کردم و آن را با رشته Hello world!
محصور در دو گیومه، " "
.
کامپایلر C به طور خودکار شامل پایان دهنده تهی، \0
، در پایان Hello world!
.
نحوه چاپ رشته در C با استفاده از تابع printf()
.
تابع printf()
یکی از رایج ترین روش های چاپ رشته ها در C است.
این مخفف عبارت "print formatted" است و به کتابخانه استاندارد ورودی/خروجی stdio.h
تعلق دارد. پس ، برای استفاده از آن، ابتدا باید فایل هدر stdio.h
را در ابتدای برنامه خود قرار دهید.
بیایید مثال زیر را در نظر بگیریم:
# include <stdio.h> int main ( void ) { char greeting[] = "Hello world!" ; printf ( "%s\n" , greeting); } // Output: // Hello world!
در مثال بالا، ابتدا فایل هدر stdio.h
را در ابتدای برنامه خود قرار دادم که حاوی اعلان تابع printf()
است.
سپس یک آرایه کاراکتری به نام greeting
اعلام کردم و آن را با متن Hello world!
در گیومه های دوتایی پیچیده شده است.
در آخر از تابع printf()
برای چاپ متن Hello world!
.
هنگام چاپ رشته با استفاده از تابع printf()
باید از یک فرمت مشخص کننده استفاده کنید.
یک فرمت مشخص کننده به عنوان یک مکان نگهدار عمل می کند که به تابع printf()
می گوید که چگونه انواع خاصی از داده ها را قالب بندی و چاپ کند. آنها با علامت درصد %
شروع می شوند و به دنبال آن یک کاراکتر که نوع داده ای را که باید قالب بندی شود را مشخص می کند. فرمت مشخص کننده رشته ها %s
است.
پس ، در خط printf("%s\n", greeting);
مشخصکننده فرمت %s
به printf()
او میگوید که رشته ذخیرهشده در متغیر greeting
و به دنبال آن یک کاراکتر خط جدید، \n
را چاپ کند.
توجه داشته باشید که تعیینکننده فرمت %s
هنگام چاپ رشتهها، پایاندهنده تهی، \0,
را شامل نمیشود. کاراکترهای رشته را تا زمانی که با آن روبرو شود چاپ می کند.
نحوه چاپ رشته در C با استفاده از تابع puts()
تابع دیگری که برای چاپ رشته ها استفاده می شود puts()
است.
بیایید مثال زیر را در نظر بگیریم:
# include <stdio.h> int main ( void ) { char greeting[] = "Hello world!" ; puts (greeting); } // Output // Hello world!
در مثال بالا، من ابتدا فایل هدر stdio.h
را اضافه کردم که حاوی اعلان puts()
است.
سپس، یک آرایه کاراکتر را اعلام کردم و آن را با متن Hello world!
. رشته به طور خودکار با پایان دهنده تهی، \0
به پایان می رسد.
در نهایت، من از تابع puts()
برای چاپ رشته در کنسول استفاده کردم و greeting
متغیر رشته را به عنوان آرگومان ارسال کردم.
تابع puts()
به طور خودکار یک کاراکتر خط جدید، \n
در انتهای رشته اضافه می کند.
توجه داشته باشید که تابع puts()
برای چاپ رشته های تهی استفاده می شود. یک رشته پایاندار تهی، دنبالهای از کاراکترهای ذخیره شده در حافظه است که به دنبال آن کاراکتری به نام پایاندهنده تهی \0
وجود دارد.
تا کنون، همه نمونهها فقط از رشتههای تهی استفاده کردهاند، مانند char greeting[] = "Hello world!";
. در حافظه، به صورت ['H', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd', '!', '\0']
.
ایجاد رشته های بدون پایان عمدی در C رایج نیست.
در اینجا نمونهای از رشتههای بدون تهی آورده شده است: char greeting[] = {'H', 'e', 'l', 'l', 'o'};
این آرایه از کاراکترها شامل پایاندهنده تهی، \0
نمیشود، پس یک رشته بدون تهی است.
اگر بخواهید با استفاده از puts()
یک رشته بدون تهی را چاپ کنید، در نهایت رفتار نامشخصی مانند کاراکترهای زباله در انتهای رشته دریافت خواهید کرد:
# include <stdio.h> int main ( void ) { char greeting[] = { 'H' , 'e' , 'l' , 'l' , 'o' }; puts (greeting); } // Ouput when I run the code the first time: // Helloq // Ouput when I run the code a second time: // Hellop // Ouput when I run the code a thrid time: // Hellow
تابع printf()
در مقابل تابع puts()
– تفاوت چیست؟
ممکن است تعجب کنید که تفاوت بین printf()
و puts()
چیست.
تابع puts()
متن را همانطور که هست، بدون هیچ گونه قالب بندی چاپ می کند. همچنین به طور خودکار یک کاراکتر خط جدید در انتهای رشته اضافه می کند.
تابع printf()
به طور خودکار یک خط جدید اضافه نمی کند - باید آن را به صراحت انجام دهید.
با این حال، امکان خروجی فرمتشده را فراهم میکند و به شما کنترل و انعطافپذیری بیشتری در مورد مکان و نحوه درج انواع دادههای مختلف در رشته قالب میدهد:
# include <stdio.h> int main ( void ) { char name[] = "John" ; int age = 30 ; // Printing strings using puts() puts ( "Using puts():" ); puts ( "My name is John and I'm 30 years old." ); // Printing strings usingprintf() printf ( "\nUsing printf():\n" ); printf ( "My name is %s and I'm %d years old. \n" , name, age); }
در مثال بالا، تابع puts()
یک رشته ساده را بدون هیچ گونه قالب بندی چاپ می کند. همچنین به طور خودکار یک کاراکتر خط جدید، \n
، در انتهای رشته اضافه می کند.
از طرف دیگر، تابع printf()
رشته را قالب بندی می کند و دو مقدار متغیر را تعبیه می کند. از مشخصکنندههای قالب، مانند %s
برای رشتهها و %d
برای اعداد صحیح استفاده میکند تا نوع دادهای را که متغیرها نگه میدارند، و جایی که متغیرها باید در رشته درج شوند، مشخص میکند. همچنین یک کاراکتر خط جدید در پایان اضافه می کند.
نتیجه
در این مقاله با دو تابع متداول در C برای چاپ رشته ها آشنا شدید.
تابع printf()
معمولا برای چاپ متن فرمت شده روی کنسول استفاده می شود. این به شما امکان می دهد خروجی خود را قالب بندی کنید و رشته ها، اعداد و کاراکترها را چاپ کنید.
تابع puts()
در مقایسه با printf()
ساده تر است. برای خروجی متن اصلی عالی است و به طور خودکار یک کاراکتر خط جدید، \n
را به رشته چاپ شده اضافه می کند.
با تشکر از شما برای خواندن، و کد نویسی مبارک!
ارسال نظر