Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để in N 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ị sự bắt đầu của dòng tiếp theo và số dòng sẽ được in từ dòng cuối cùng. Nhiệm vụ của chúng ta là bắt đầu từ dòng cuối cùng và in tất cả N 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 N 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, 14); return 0; }
Đầu ra
str12 str13 str14 str15 str16 str17 str18 str19 str20 str21 str22 str23 str24 str25