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