Nhập chuỗi trong C | Laptrinhcanban.com

Nhập chuỗi 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.

Nhập 1 ký tự trong C

Để nhập 1 ký tự trong C, chúng ta sử dụng hàm scanf() với định dạng %c bằng cú pháp sau đây:

char a;
scanf("%c", &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. Lưu ý chúng ta cần thêm ký tự & vào đằng trước tên biến khi biến này thuộc kiểu ký tự.

Ví dụ cụ thể:

#include <stdio.h>

int main(void) {
printf("Nhap 1 ky tu: ");

char chr;
scanf("%c", &chr);

printf("Ky tu vua nhap: %c\n", chr);

return 0;
}

Khi đó màn hình nhập dữ liệu sẽ như sau:

Nhap 1 ky tu: g
Ky tu vua nhap: g

Nhập vào một chuỗi trong C

Để nhập vào một chuỗi trong C, chúng ta sử dụng hàm scanf() với định dạng %s bằng cú pháp sau đây:

char str[n];
scanf("%s", str)

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. Lưu ý vốn mảng trong C đã biểu diễn địa chỉ rồi nên chúng ta không cần thêm ký tự & vào đằng trước tên biến khi biến này thuộc kiểu mảng.

Ví dụ, chúng ta viết chương trình nhập vào một chuỗi ký tự C như sau:

#include <stdio.h>

int main(void) {
printf("Nhap chuoi ky tu: ");

char str[100];
scanf("%s", str);

printf("Chuoi ky tu vua nhap: %s\n", str);

return 0;
}

Khi đó màn hình nhập dữ liệu sẽ như sau:

Nhap chuoi ky tu: abc
Chuoi ky tu vua nhap: abc

Nhập nhiều chuỗi trong C

Để nhập nhiều chuỗi trong C, chúng ta viết các định dạng chuỗi trong chuỗi định dạng, và các chuỗi nhập vào cách nhau bởi dấu phẩy, khi dùng hàm scanf() với cú pháp sau đây:

char str1[n1], str1[n2], str3[n3];
scanf("%s%s%s", str1, str2, str3);

Ví dụ, chúng ta viết chương trình nhập nhiều chuỗi trong C như sau:

#include <stdio.h>

int main(void) {
printf("Nhap cac chuoi: ");

char str1[16], str2[16], str3[16];

scanf("%s%s%s", str1, str2, str3);

printf("Cac chuoi vua nhap: %s %s %s\n", str1 ,str2, str3);

return 0;
}

Khi đó màn hình nhập dữ liệu sẽ như sau:

Nhap cac chuoi: abc
def
gkj
Cac chuoi vua nhap: abc def gkj

Nhập chuỗi có khoảng trắng trong C

Hàm scanf() trong C chỉ có tác dụng nhập các chuỗi không chứa khoảng trắng. Trong trường hợp cần nhập chuỗi chứa khoảng trắng tạo bởi dấu cách, tab hay ký tự xuống dòng, chúng ta sẽ dùng hàm fgets() để thay thế.

Hàm fgets() 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 đó:

  • str là biến để chứa chuỗi cần nhập từ bàn phím
  • sizeof(str)+1 để chỉ định số ký tự lớn nhất có thể nhập bởi hàm fgets(). Ở đây hàm sizeof(str) sẽ trả về kích cỡ của chuỗi str, bao gồm cả ký tự kết thúc chuỗi \0, nên chúng ta cần cộng thêm 1 đơn vị vào.
  • stdin được sử dụng như là con trỏ file trong hàm fgets(). stdin là viết tắt của file header “stdio.h”, giúp chúng ta có thể nhận đầu vào tiêu chuẩn từ bàn phím.

Và sau đây là ví dụ nhập chuỗi có dấu cách trong C:

#include <stdio.h>
int main(void){

printf("Nhap chuoi co ky tu trang: ");
char str[10];
fgets(str, sizeof(str)+1, stdin);


printf("Chuoi vua nhap: ");
puts(str);
return 0;
}

Khi đó màn hình nhập dữ liệu sẽ như sau:

Nhap chuoi co ky tu trang: Viet Nam
Chuoi vua nhap: Viet Nam

Tổng kết

Trê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 những kiến thức sâu hơn về C trong các bài học tiếp theo nhé.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.