Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: C++ | Cuối string có phải là NULL như trong char* hay không?

  1. #1
    Ngày gia nhập
    12 2008
    Bài viết
    198

    Mặc định C++ | Cuối string có phải là NULL như trong char* hay không?

    Cuối String có phải là NULL như trong char* hay không??,mình có câu hỏi này không được rõ lắm,tìm trên mạng không có,đọc ở đây nhưng không hiểu lắm
    11.2.4 Strings and C-Strings
    In standard C++ the type of string literals was changed from char* to const char*. However, to provide backward compatibility there is an implicit but deprecated conversion to char* for them. However, because string literals don't have type string, there is a strong relationship between "new" string class objects and ordinary C-strings: You can use ordinary C-strings in almost every situation where strings are combined with other string-like objects (comparing, appending, inserting, etc.). In particular, there is an automatic type conversion from const char* into strings. However, there is no automatic type conversion from a string object to a C-string. This is for safety reasons to prevent unintended type conversions that result in strange behavior (type char* often has strange behavior) and ambiguities (for example, in an expression that combines a string and a C-string it would be possible to convert string into char* and vice versa). Instead, there are several ways to create or write/copy in a C-string, In particular, c_str() is provided to generate the value of a string as a C-string (as a character array that has '\0' as its last character). By using copy(), you can copy or write the value to an existing C-string or character array.

    Note that strings do not provide a special meaning for the character '\0', which is used as special character in an ordinary C-string to mark the end of the string. The character '\0' may be part of a string just like every other character.

    Note also that you must not use a null pointer (NULL) instead of a char* parameter. Doing so results in strange behavior. This is because NULL has an integral type and is interpreted as the number zero or the character with value 0 if the operation is overloaded for a single integral type.

    There are three possible ways to convert the contents of the string into a raw array of characters or C-string:

  2. #2
    Ngày gia nhập
    12 2008
    Bài viết
    198

    không ai trả lời

  3. #3
    Ngày gia nhập
    06 2008
    Bài viết
    25

    Bạn hỏi cái class string trong c++ fải ko?
    Vậy thì chắc là ko có.

  4. #4
    Ngày gia nhập
    03 2008
    Bài viết
    5

    Hm, đọc cái này mới nhớ
    Trong một số programing Có chỗ comment chuyen đoi STRING thành C-string
    Để làm gì vậy

  5. #5
    Ngày gia nhập
    01 2009
    Bài viết
    165

    chuỗi kí tự cũng chính là mảng 1 chiều gồm các phần tử có kiểu là kí tự,vì vậy khi khai báo 1 chuỗi kí tự nếu ko có kí tự NULL thì ta phải khai báo thêm 1 biến để chứa số lượng các kí tự có trong chuỗi nhưng vì đặc thù của chuỗi kí tự nên việc khai báo như vậy là ko ổn ,vì vậy C sẽ tự động cho thêm 1 kí tự NULL vào cuối chuỗi để cho biết là chuỗi đã kết thúc,lúc này sẽ ko cần phải khai báo số lượng cụ thể các kí tự có trong chuỗi nên sẽ thuận tiện hơn,ví dụ:bạn muốn nhập họ tên của 1 người nếu ko có kí tự NULL thì bạn phải thêm 1 câu lệnh yêu cầu nhập số lượng các kí tự có trong tên đó,rõ ràng là khá bất tiện nhưng nếu có kí tự NULL thì người dùng chỉ cần nhập tên thôi.

Các đề tài tương tự

  1. Cách gán một string vào một char trong VC++.NET?
    Gửi bởi Greengrass17 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 15-09-2013, 06:54 PM
  2. Bài tập C++ tạo toán tử ==trong lớp string với tham số là string, char
    Gửi bởi truonglong99 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 24-10-2011, 08:56 AM
  3. string, char, Unicode char trong VC++
    Gửi bởi TQN trong diễn đàn Tutorials và Thủ thuật Visual C++
    Trả lời: 2
    Bài viết cuối: 09-03-2010, 01:35 PM
  4. char* string= new char[10]; làm sao để gán trị 0 cho 10 phần từ này
    Gửi bởi NLKNguyen trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 03-04-2008, 03:34 PM
  5. [VC] _itoa cần đối số char *string, nạp char * thì 0 được
    Gửi bởi thuongshoo trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 30-09-2006, 12:32 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn