Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรมพิมพ์ 10 บรรทัดสุดท้ายในภาษา C++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมสำหรับพิมพ์ 10 บรรทัดสุดท้าย

สำหรับสิ่งนี้ เราจะได้รับสตริงที่ประกอบด้วยอักขระขึ้นบรรทัดใหม่เพื่อแสดงจุดเริ่มต้นของบรรทัดถัดไป งานของเราคือเริ่มจากบรรทัดสุดท้ายและพิมพ์ทั้งหมด 10 บรรทัดนับจากบรรทัดสุดท้าย

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
#define DELIM '\n'
//printing the last 10 lines
void print_last_lines(char *str, int n){
   if (n <= 0)
      return;
   size_t cnt = 0; //storing the number of lines
   char *target_pos = NULL;
   //finding the initial position of last line
   target_pos = strrchr(str, DELIM);
   if (target_pos == NULL){
      cout << "Given string is a single line string";
      return;
   }
   //moving to the start position of the 1st line
   while (cnt < n){
      //moving to the next lines
      while (str < target_pos && *target_pos != DELIM)
         --target_pos;
      if (*target_pos == DELIM)
         --target_pos, ++cnt;
      //if string has less than 10 lines the break
      else
         break;
   }
   if (str < target_pos)
      target_pos += 2;
   cout << target_pos << endl;
}
int main(void){
   char *str1 ="str1\nstr2\nstr3\nstr4\nstr5\nstr6\nstr7\nstr8\nstr9” "\nstr10\nstr11\nstr12\nstr13\nstr14\nstr15\nstr16\nstr17" "\nstr18\nstr19\nstr20\nstr21\nstr22\nstr23\nstr24\nstr25";
   print_last_lines(str1, 10);
   return 0;
}

ผลลัพธ์

str16
str17
str18
str19
str20
str21
str22
str23
str24
str25