Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình in 10 dòng cuối cùng trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để in 10 dòng cuối cùng.

Đối với điều này, chúng tôi sẽ được cung cấp một chuỗi bao gồm ký tự dòng mới để biểu thị phần bắt đầu của dòng tiếp theo. Nhiệm vụ của chúng ta là bắt đầu từ dòng cuối cùng và in tất cả 10 dòng tính từ dòng cuối cùng.

Ví dụ

#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;
}

Đầu ra

str16
str17
str18
str19
str20
str21
str22
str23
str24
str25