Cách lấy đầu vào của mảng trong một dòng trong c ++
Trong bài viết này, chúng tôi đã giải thích cách nhập chuỗi trong Ngôn ngữ lập trình C bằng các ví dụ mã C. Chúng tôi đã giải thích các trường hợp khác nhau như lấy một từ, nhiều từ, cả dòng và nhiều dòng bằng các chức năng khác nhau Mục lục
Hãy để chúng tôi tìm hiểu các kỹ thuật này bằng cách sử dụng các ví dụ về mã C Nhập chuỗi bằng hàm scanfHàm đầu vào scanf có thể được sử dụng với đặc tả định dạng %s để đọc trong một chuỗi ký tự Đọc một từVí dụ
Vấn đề với hàm scanf là nó kết thúc đầu vào của nó trên khoảng trắng đầu tiên mà nó tìm thấy. Khoảng trắng bao gồm khoảng trống, tab, xuống dòng, nguồn cấp biểu mẫu và dòng mới Do đó, nếu dòng văn bản sau được gõ
thì chỉ có chuỗi "HELLO" được đọc vào địa chỉ mảng, vì khoảng trống sau từ 'MỚI' sẽ chấm dứt việc đọc chuỗi. Hàm scanf tự động kết thúc chuỗi được đọc bằng ký tự null và do đó, mảng ký tự phải đủ lớn để chứa chuỗi đầu vào cộng với ký tự null. Lưu ý rằng không giống như các lệnh gọi scanf trước đây, trong trường hợp mảng ký tự, dấu và (&) không bắt buộc trước tên biến Đọc nhiều từNếu chúng ta muốn đọc cả dòng "HELLO BOY" thì có thể dùng hai mảng ký tự có kích thước phù hợp
Nó sẽ gán chuỗi "HELLO" cho instr1 và "BOY" cho instr2
Nếu chúng tôi cung cấp "WELCOME TO OPENGENUS" làm đầu vào, nó sẽ chỉ đọc CHÀO MỪNG và hiển thị nó dưới dạng đầu ra Để khắc phục vấn đề này, chúng ta có thể tạo các mảng khác nhau cho tất cả các từ có trong chuỗi Đọc nhiều từ để tạo thành một dòng
Nó sẽ lấy bốn từ trong bốn mảng ký tự khác nhau và hiển thị trên màn hình đầu ra Đọc cả một dòngChúng tôi đã thấy rằng scanf với %s hoặc %ws chỉ có thể đọc các chuỗi không có khoảng trắng.
Một phương pháp tương tự như trên Sử dụng getcharChúng ta có thể sử dụng nó nhiều lần để đọc các ký tự đơn liên tiếp từ đầu vào và đặt chúng vào một mảng ký tự. Do đó, toàn bộ dòng văn bản có thể được đọc và lưu trữ trong một mảng. Quá trình đọc kết thúc khi ký tự dòng mới ('\n') Đọc Toàn bộ Dòng bằng cách sử dụng get()Một phương pháp khác để đọc chuỗi văn bản chứa khoảng trắng là sử dụng hàm thư viện có sẵn trong Ví dụ ________số 8Nó sẽ đọc một dòng từ bàn phím và hiển thị nó trên màn hình Chương trình cuối cùng cũng có thể được viết là
Xin lưu ý rằng C không kiểm tra giới hạn mảng, vì vậy hãy cẩn thận không nhập thêm ký tự có thể được lưu trữ trong biến chuỗi được sử dụng Một chương trình hoàn chỉnh để chứng minh hoạt động của get 0Chương trình này sẽ hoạt động hoàn toàn bình thường và nó sẽ lấy toàn bộ chuỗi làm đầu vào từ bàn phím và hiển thị nó trên màn hình đầu ra Đọc từng dòng một từ tệp bằng fgets()Hàm fgets() nhận ba tham số đó là
Chúng ta có thể viết nó như 1Ví dụ 2Nó sẽ lấy toàn bộ chuỗi làm đầu vào từ bàn phím và hiển thị toàn bộ màn hình trên màn hình đầu ra Đọc nhiều dòngChương trình sau đọc nhiều dòng từ bàn phím 3Câu hỏiCâu lệnh nhập nào sau đây là đúng để đọc toàn bộ chuỗi từ bàn phím?Tất cả đều đúng được (str); scanf("%[^\n]",str); fgets(instr,100,stdin); Tất cả các phương pháp này được thảo luận trong bài viết là gets() , scanf("%[^\n]",str);Câu hỏiMột mảng ký tự instr[] lưu trữ "HELLO". Độ dài của mảng instr[] cần để lưu trữ chuỗi hoàn chỉnh là bao nhiêu?6 5 4 không ai trong số này Vì từ xin chào dài 5 ký tự và sẽ có một ký tự null ở cuối, chúng tôi yêu cầu một mảng có kích thước 6Câu hỏiTrạng thái Đúng hay Sai. "Hàm đầu vào có một tham số chuỗi. "ĐÚNG VẬY Sai Hàm đầu vào có một tham số chuỗi đọc các ký tự từ bàn phím cho đến khi gặp một ký tự dòng mới và sau đó nối một ký tự null vào chuỗiVì vậy, với bài viết này tại OpenGenus, chúng ta đã thấy tất cả các phương thức khả thi để lấy chuỗi đầu vào trong ngôn ngữ lập trình C |