۳ـ۹ برنامه زیر یک خط متن حداکثر به طول ۷۹ کاراکتر را میخواند و آن را به همان صورت چاپ میکند.
#include<stadio.h>
main () /* read a line of text */
{
char line[80] ;
int count , k ;
/* read in the line */
for (k=0 ; line[k]=getchar ()!=’\n’ ; + +k)
count = k ;
for (k=0 ; k<count ; + +k)
putchar(line[k]) ;
}
در حلقه for، شمارنده k از صفر شروع میشود و مقدار آن در هر تکرار یک واحد افزایش مییابد و در هر تکرار یک کاراکتر با تابع getchar از طریق ورودی استاندارد دریافت میشود و به line[k] نسبت داده میشود و وقتی که کاراکتر خط جدید (یعنی \n) وارد شد، عمل ورود کاراکترهای رشته خاتمه مییابد که در این لحظه مقدار k برابر تعداد کاراکترهای واقعی رشته خواهد بود. سپس در حلقه بعدی محتوای آرایه line[ ] که دربردارنده رشته دریافت شده است چاپ میگردد (دو تابع getchar و putchar دوباره بررسی خواهد شد). راه دیگر برای ورود رشتهها به حافظه کامپیوتر استفاده از تابع gets است که در مبحث رشتهها بحث میکنیم.
برای خواندن رشتههایی که در آنها فضای خالی (space یا blank) وجود داشته باشد، میتوان به طریقی از تابع scanf نیز استفاده کرد. برای این کار میتوان به جای کاراکتر تبدیل نوع s در رشته کنترلی، دنبالهای از کاراکترها را در داخل کروشه به صورت […] قرار داد که در این صورت رشته مورد نظر هریک از کاراکترهای موجود در داخل کروشه ازجمله blank را شامل میشود.
با چنین روشی وقتی که برنامه اجرا میگردد، تا زمانی که کاراکترهای متوالی خوانده شده از طریق دستگاه ورودی با یکی از کاراکترهای موجود در درون کروشهها یکسان باشد، عمل خواندن رشتهها ادامه مییابد. فضای خالی نیز در داخل رشتهها منظور میشود. به محض اینکه کاراکتری خوانده شود که در داخل کروشهها وجود نداشته باشد، عمل خواندن خاتمه میپذیرد. درضمن یک کاراکتر null به طور خودکار به پایان رشته افزوده میشود.