Cách nhập chuỗi có khoảng trắng trong C
Cùng tìm hiểu về cách nhập chuỗi trong C++. Bạn sẽ học được cách nhập 1 ký tự trong C++, nhập một chuỗi trong C++, nhập nhiều chuỗi trong C++, cũng như cách nhập chuỗi có khoảng trắng trong C++ sau bài học này. Show Nhập 1 ký tự trong C++Để nhập 1 ký tự trong C + +, tất cả chúng ta sử dụng lệnh cin trong C + + bằng cú pháp sau đây : char a; Trong đó dòng đầu tiên dùng để khai báo biến a có kiểu ký tự, và dòng thứ 2 dùng để gán 1 ký tự nhập từ bàn phím vào biến a. Bạn đang đọc: Nhập chuỗi trong C++ Ví dụ cụ thể:
Khi đó màn hình nhập dữ liệu sẽ như sau:
Nhập vào một chuỗi trong C++Để nhập vào một chuỗi trong C + +, tất cả chúng ta cũng sử dụng lệnh cin bằng cú pháp sau đây : char str[n]; Trong đó dòng đầu tiên dùng để khai báo biến str có kiểu mảng chuỗi với độ dài n, và dòng thứ 2 dùng để gán 1 chuỗi nhập từ bàn phím vào biến str. Ví dụ, chúng ta viết chương trình nhập vào một chuỗi ký tự C++ như sau:
Khi đó màn hình nhập dữ liệu sẽ như sau:
Nhập nhiều chuỗi trong C++Để nhập nhiều chuỗi trong C++ cách nhau bởi dấu cách, chúng ta viết các chuỗi nhập vào cách nhau bởi toán tử >>, khi dùng lệnh cin với cú pháp sau đây: char str1[n1], str1[n2], str3[n3]; Ví dụ, chúng ta viết chương trình nhập nhiều chuỗi trong C++ như sau:
Khi đó màn hình nhập dữ liệu sẽ hiện ra. Chúng ta nhập từng chuỗi cách nhau bởi dấu cách từ bàn phím như sau:
Nhập chuỗi có khoảng trắng trong C++Lệnh cin trong C + + chỉ có tính năng nhập những chuỗi không chứa khoảng chừng trắng. Trong trường hợp cần nhập chuỗi chứa khoảng chừng trắng tạo bởi dấu cách, tab hay ký tự xuống dòng, tất cả chúng ta sẽ dùng hàm fgets ( ) để thay thế sửa chữa . Hàm fgets() là hàm được kế thừa từ ngôn ngữ C, vốn được sử dụng để đọc và lấy dữ liệu từ file trong C++, tuy nhiên chúng ta cũng có thể nhập chuỗi có khoảng trắng trong C++ bằng hàm này với cú pháp sau đây: fgets ( str, sizeof ( str ) + 1, stdin ) ;Trong đó :
Và sau đây là ví dụ nhập chuỗi có dấu cách trong C++:
Xem thêm: Phẫu thuật, thủ thuật được phân thành những mức độ nào? Khi đó màn hình nhập dữ liệu sẽ như sau:
Tổng kếtTrên đây Kiyoshi đã hướng dẫn bạn về nhập chuỗi trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành với các ví dụ sau đây. Và hãy cùng tìm hiểu và khám phá những kỹ năng và kiến thức sâu hơn về C + + trong những bài học kinh nghiệm tiếp theo nhé . Source: https://ta-ogilvy.vn
Trong ngôn ngữ lập trình C không có kiểu dữ liệu chuỗi mà chuỗi trong C là một dãy các kí tự kiểu char. Một chuỗi trong C được đánh dấu kết thúc là ‘\0’ (còn gọi là ký tự NULL trong bảng mã ASCII) và có độ dài tùy ý, điều này cũng có nghĩa chuỗi ký tự trong C là một mảng các ký tự char. Các Biến Chuỗi
Khai báoKhai báo theo mảngCú pháp: char Ví dụ: Trong chương trình, ta có khai báo: char Ten[12]; Trong khai báo này, bộ nhớ sẽ cung cấp 12+1 bytes để lưu trữ nội dung của chuỗi ký tự Ten; byte cuối cùng lưu trữ ký tự ‘\0’ để chấm dứt chuỗi. Lưu ý:
Khai báo theo con trỏ Cú phápchar * Ví dụ: Trong chương trình, ta có khai báo: char *Ten; Trong khai báo này, bộ nhớ sẽ dành 2 byte để lưu trữ địa chỉ của biến con trỏ Ten đang chỉ đến, chưa cung cấp nơi để lưu trữ dữ liệu. Muốn có chỗ để lưu trữ dữ liệu, ta phải gọi đến hàm malloc() hoặc calloc() có trong “alloc.h”, sau đó mới gán dữ liệu cho biến. Vừa khai báo vừa gán giá trịCú pháp: char Ví dụ: #includeLưu ý: Chuỗi được khai báo là một mảng các ký tự nên các thao tác trên mảng có thể áp dụng đối với chuỗi ký tự. Không thể cộng, trừ, nhân, chia 2 chuỗi kí tự lại bằng phép toán đơn thuần. Tất cả những điều đó phải được làm bằng các hàm riêng lẽ. Ta có thể gán một chuỗi này bằng một chuỗi khác (strcpy), so sánh 2 chuỗi kí tự với nhau theo thứ tự từ điển (strcmp), cộng 2 chuỗi với nhau (strcat),… Mọi hằng chuỗi đều được ngôn ngữ lập trình C lưu trữ như là một mảng các char và kết thúc bằng kí tự “\0”. Hơn nữa, một chuỗi trong chương trình chúng ta chỉ nhận được địa chỉ và chỉ đến đầu mảng lưu trữ. Việc truy xuất đến một hằng chuỗi đều được thực hiện qua một pointer chỉ đến mảng đó. Hàm nhập xuất một chuỗiNhập chuỗi từ bàn phímĐể nhập một chuỗi ký tự từ bàn phím, ta sử dụng hàm gets() Cú pháp: gets( Ví dụ: char Ten[20]; gets(Ten); Ta cũng có thể sử dụng hàm scanf() để nhập dữ liệu cho biến chuỗi, tuy nhiên lúc này ta chỉ có thể nhập được một chuỗi không có dấu khoảng trắng. Ngoài ra, hàm cgets() (trong conio.h) cũng được sử dụng để nhập chuỗi. #includeKết quả thực hiện chương trình: Lưu ý: Nếu dùng hàm scanf() để nhập dữ liệu và kết thúc việc nhập dữ liệu bằng phím Enter, thì lúc này phím Enter sẽ cho hai kí tự có mã ASCII là 13 và 10 trong vùng đệm. Như vậy nếu dùng hàm scanf() thì kí tự có mã ASCII 10 vẫn còn nằm trong vùng đệm. Nếu ta dùng hàm gets(chuỗi s), kí tự có mã ASCII là 10 được chuyển ngay vào chuỗi s. Tức là hàm gets sẽ lấy tất cả các ký tự trong buffer (vùng đệm) của màn hình vô chuỗi cho nên đôi khi chúng ta sẽ nhận được chuỗi không mong muốn do gets nhận những ký tự dư của các hàm nhập khác. Để tránh điều này ta dùng hàm int flushall(void) để xóa mọi buffer (vùng đệm) hoặc hàm fflush(stdin) để xóa vùng đệm bàn phím trước hàm nhập chuỗi gets (chuỗi s). #includeKết quả thực thi của chương trình: Nhập chuỗi kết thúc bằng phím Enter : char*gets(char*s); Xuất chuỗi lên màn hìnhĐể xuất một chuỗi (biểu thức chuỗi) lên màn hình, ta sử dụng hàm puts(). Cú pháp: puts( Ví dụ: Nhập vào một chuỗi và hiển thị trên màn hình chuỗi vừa nhập. #includeXuất một chuỗi có xuống dòng sau khi xuất: int put(const char*s); int printf(“%s\n”,s); Xuất một chuỗi không xuống dòng sau khi xuất: int printf(“%s”,s); int printf(s); |