30/09/2018, 17:18

Kí tự kết thúc chuỗi trong C++ là gì?

Các bác cho e hỏi trong C thì kết thúc 1 chuỗi là '', còn C++ là gì vậy ạ?

Nguyen Hai viết 19:23 ngày 30/09/2018

Giống C luôn là ‘\0’

Nguyễn Duy Khánh viết 19:30 ngày 30/09/2018

vậy sao khi code c chẳng hạn ntn

char s[] = "0123456789";
s[5] = '\0';
prinft("%s", 01234);

ta sẽ đc 01234

còn c++

string s = "0123456789"
s[5] = '\0';
cout << s;

lại là 01234 6789 , và cả hàm length() cũng vậy, chả có nhẽ nó đếm cả kí tự NULL ???

Gió viết 19:30 ngày 30/09/2018

Vì c++ string là class có thuộc tính chiều dài chuỗi. Khi gán s[4]=’\0’ nó không làm thay đổi thuộc tính đó nên hàm cout và length in theo chiều dài ban đầu

Nguyễn Duy Khánh viết 19:34 ngày 30/09/2018

Vậy làm sao để giảm độ dài của chuỗi ạ?

Gió viết 19:24 ngày 30/09/2018

Có thể dùng resize ( tăng,giảm kích thước) pop_back (xoá kí tự cuối), erase( xoá vị trí hoặc 1 đoạn)

Sáng Béo viết 19:19 ngày 30/09/2018

char s = “0123456789”;
s[5] = ‘\0’;
prinft("%s", 01234);

cái chỗ này mình thấy cứ thế nào ấy.

char s = "0123456789"; (s có phải là 1 KÍ TỰ?)
s[5] = '\0';
prinft("%s", 01234); (cái này thì nó chỉ cho in ra 01234 thôi chứ có liên quan gì đến s đâu nhi?)

Nguyễn Duy Khánh viết 19:29 ngày 30/09/2018

prinft("%s", 01234) dòng này mình viết nhầm
prinft("%s", s) thì nó in ra 01234

Đạt Đỗ viết 19:25 ngày 30/09/2018

string s=“thanhdat”
cout << s << endl;
output: thanhdat
s[3]=’\0’;
cout << s << endl;
output: tha

Nguyễn Duy Khánh viết 19:21 ngày 30/09/2018

Bác thử xem có ra vậy k?

Đạt Đỗ viết 19:34 ngày 30/09/2018

nhầm
hahahahhahaha

lâm phúc tài viết 19:20 ngày 30/09/2018

mình thấy nói sao sao á.
ví dụ char s[100];
s[0]=‘a’;
s[1]=‘b’;
s[2]=‘c’;
cout; sẽ lỗi
nếu khai char s[]=“abc”;
thì nó sẽ lưu trong mảng ký tự này là ‘a’ ‘b’ ‘c’ ‘\0’ nên cout; chạy vô tư

Bài liên quan
0