Video Ngôn Ngữ C - 10 - Mảng ký tự hay còn được gọi là chuỗi

I moved a post to a new topic: Làm sao để post source code lên diễn đàn?

1 Like

cảm ơn bạn tui biết rồi cảm ơn bạn vì đã post lại code ở bài 10
bạn cho tui hỏi %d là số nguyên %s là chữ còn %f là số lẻ
vậy còn int , float dùng để làm gì làm gì
tui đang học đến bài 10 à còn char nữa chứ

int là số nguyên, float là số thực (hay như cách bạn gọi là số lẻ)

%d có thể in được: int, unsigned int
%f có thể int được: float, double

Link này giải thích đầy đủ

http://www.cplusplus.com/reference/cstdio/printf/

char dùng %c

2 Likes

cho mình hỏi là vì sao phải dùng là %c mà không được dùng %s ? Và có cách nào để không bị nhầm không?

%c dùng để in một ký tự, là viết tắt của character

%s dùng để in một chuỗi ký tự, là viết tắt của string

@Minh_Toan xem thêm chuỗi video hướng dẫn C nhé: http://portal.daynhauhoc.com/p/hoc-lap-trinh-ngon-ngu-c/

1 Like

I moved 2 posts to a new topic: Trong C có khai báo mảng 2 chiều bằng new được không?

thế nếu muốn in ra màn hình chẳng hạn như từ datxyz thanh datxxz thì sao ạ

ltdLê Trần ĐạtNov '14
mang[3] = 0 sẽ làm cho hàm printf khi xuất chuỗi ra sẽ ngừng khi gặp giá trị 0. Đó là quy tắc để phân biệt chuỗi và mảng ký tự trong C.

Chuối tức là mảng ký tự kết thúc bằng 0.

anh đạt ơi cái này em thắc mắc chút
mang[3] = 0 nó sẽ ngừng khi gặp giá trị 0, vậy giá trị 0 ở đây là chỗ nào ạ
với cả em thay 0 = số khác thì nó có hình như mấy ký tự rác vậy

anh cho em hỏi ở bài biến có : char* ,còn bài này ko cần kí tự " *" ,khác nhau như thế nào ạ

Nếu vậy khi khai báo mảng /chuỗi : tốt nhất mình nên để rỗng bên trong “[]” phải không anh đạt.

anh đạt cho em hỏi là

char mang[] = "datxyz";
mang[3] = 0;
printf ("%s\n", mang);

lúc chạy code thì nó ra dat

là lúc chạy code nó có sô 0 ngay chỗ nào là dừng ngay tại đó như anh nói

ví dụ

char mang[] = "iloveyou";
mang[5] = 0 ;
printf ("%s\n", mang");

là nó sẽ chạy code rồi in ra là ilove đúng không anh
chỉ cần mình có chung tên là mang thì nó sẽ liên quan tới nhau phải hông

hihi em hỏi hơi dài dòng tí tại em thấy khó hiểu :3

Sao em không code thử :slight_smile:

Mấy câu hỏi dạng này có thể kiểm tra trong 3s mà :thinking:

2 Likes

hihi hỏi luôn anh để chắc hơn á mà hihi
chứ em chạy code rồi hihi anh giảng dể hiểu lắm luôn hihi
nhưng phần while em hơn rối ren tí đang buồn hô hô :smile:
mà có thì anh rảnh em hỏi anh hihi
anh cố gắng giảng tiếp nhé hihi

#include <stdio.h>
#include <stdlib.h>
int main()  {
    char chuoi[] = "012\03456";
    printf("\n %s", chuoi);
    return 0;
}

Anh Đạt cho em hỏi là sao khi em thay char chuoi[] = “012\03456”; thì lúc in ra màn hình lại bị như thế này ạ
Còn nêý em để là char chuoi[]=“Le Tran\0 Dat”; thì lại không sao hả anh

1 Like

Em viết như vậy C hiểu nhầm là \034, em sửa lại thành
012\0 3456

2 Likes
#include <stdio.h>

int main()
{
    char dau_don = '''';
    printf("in ra dau don: %c\n", dau_don);
    char dau_kep = ' " ';
    printf("in ra dau ngoac kep: %c\n", dau_kep);
    char dau_cheo =' / ';
    printf("in ra dau gach cheo:%c\n", dau_cheo);
    return 0;
}

cho e hỏi tại sao chương trình này của e chạy lại bị lỗi ạ, đây là bài tập 1 trong vid ạ

char dau_don = ''';
char dau_kep = '"';
char dau_cheo ='/';
1 Like

ở bài tập 2:

char mang[] = datxyz;
mang[3] = 0;
printf("%s\n", mang);

thì khi xuất ra nó sẽ lấy 3 ký tự đầu
vậy a cho e hỏi có cách nào lấy các ký tự ở giữa của nó ko như atz hay txy ạ?

Em có thể dùng lệnh strcpy để lấy từ chữ a đến chữ z.
Hoặc em dùng vòng lặp, lặp qua mảng để lấy từ a đến z :slight_smile:

1 Like

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?