งานของคุณในครั้งนี้คือการใช้ชุดexpand(1)
โปรแกรมอรรถประโยชน์POSIX ซึ่งขยายแท็บไปยังช่องว่าง
โปรแกรมของคุณคือใช้ข้อมูลจำเพาะของแท็บสต็อปจากนั้นอ่านอินพุตตามมาตรฐานในและแทนที่อักขระแท็บในอินพุตด้วยจำนวนช่องว่างที่เหมาะสมเพื่อเข้าถึงแท็บสต็อปถัดไป ผลที่ควรจะเขียนออกมาตรฐาน
ข้อมูลจำเพาะ Tabstop
ข้อกำหนด TabStopประกอบด้วยทั้งหมายเลขเดียวหรือรายการคั่นด้วยเครื่องหมายจุลภาค tabstops ในกรณีของตัวเลขเดียวมันซ้ำแล้วซ้ำอีกราวกับว่ามันทวีคูณของมันเกิดขึ้นในรายการคั่นด้วยเครื่องหมายจุลภาค (เช่น4
ทำหน้าที่เป็น4,8,12,16,20,...
) +
รายการในรายการคั่นด้วยเครื่องหมายจุลภาคแต่ละเป็นจำนวนเต็มบวกนำหน้าเลือกโดย +
คำนำหน้าบ่งบอกถึงความแตกต่างเมื่อเทียบกับค่าก่อนหน้านี้ในรายการคั่นด้วยเครื่องหมายจุลภาค ค่าแรกในรายการต้องเป็นค่าสัมบูรณ์ แท็บระบุคอลัมน์ของอักขระที่ไม่ใช่ช่องว่างถัดไป (ตามหลังแท็บที่ขยาย) โดยคอลัมน์ซ้ายสุดที่ถือเป็นหมายเลข 0 แท็บควรขยายเป็นอย่างน้อยหนึ่งช่องเสมอ
อินพุต / เอาต์พุต
ข้อมูลจำเพาะ tabstop จะต้องนำมาเป็นพารามิเตอร์บรรทัดคำสั่งแรกไปยังโปรแกรมหรืออ่านจากมาตรฐานในเป็นบรรทัดแรกของการป้อนข้อมูล (ยกเลิกโดยขึ้นบรรทัดใหม่) ขึ้นอยู่กับดุลยพินิจของคุณ หลังจากที่แท็บหยุดอ่านอินพุตที่เหลือ (อินพุตทั้งหมดในเคสเก่า) จนกว่า EOF จะถูกประมวลผลและขยาย เอาท์พุทที่ขยายจะต้องเขียนออกมาตรฐาน
แท็บที่ถูกขยายทั้งหมดและอินพุตทั้งหมดจะถือว่ามีความกว้างสูงสุด 80 คอลัมน์ แท็บที่ขยายทั้งหมดจะเพิ่มขึ้นอย่างเคร่งครัด
ตัวอย่าง
ข้อมูลจำเพาะ Tabstop 4,6,+2,+8
เทียบเท่ากับ4,6,8,16
และมีทั้งอินพุต
ab<Tab>c
<Tab><Tab>d<Tab>e<Tab>f
ถูกขยายเป็น ( ␣
หมายถึงช่องว่าง)
ab␣␣c
␣␣␣␣␣␣d␣e␣␣␣␣␣␣␣f
01234567890123456 (Ruler for the above, not part of the output)
1111111
การให้คะแนนเป็นโค้ดกอล์ฟที่บริสุทธิ์ รหัสที่สั้นที่สุดชนะ
x+($1?i:0)
สั้นลงได้$1?x+i:x
ไหม?