Các bác cho e hỏi trong C thì kết thúc 1 chuỗi là '\0'
, còn C++ là gì vậy ạ?
Kí tự kết thúc chuỗi trong C++ là gì?
Giống C luôn là ‘\0’
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 ???
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
Vậy làm sao để giảm độ dài của chuỗi ạ?
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)
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?)
prinft("%s", 01234)
dòng này mình viết nhầm
prinft("%s", s)
thì nó in ra 01234
string s=“thanhdat”
cout << s << endl;
output: thanhdat
s[3]=’\0’;
cout << s << endl;
output: tha
Bác thử xem có ra vậy k?
nhầm
hahahahhahaha
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ư