Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 21 kết quả

Đề tài: Hỏi về char và char*

  1. #1
    Ngày gia nhập
    01 2007
    Bài viết
    16

    Mặc định Hỏi về char và char*

    Trong C++ làm thế nào để chuyển một string dạng char* được ghép bởi các ký tự khởi tạo qua mã ASCII

    Ví dụ một chuỗi 4 byte có các mã ASCII : 0x02 0x40 0x70 0x03

    Tớ dùng

    char* data = "";
    data[0] = 02;
    data[1] = 0x40;
    data[2] = 0x70;
    data[3] = 03;

    Các bạn giúp với

    Nhân tiện hỏi thêm cộng chuỗi các char và char* thành char* như thế nào
    Đã được chỉnh sửa lần cuối bởi THE LAST LEAF : 16-02-2008 lúc 11:19 AM.

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Nhân tiện hỏi thêm cộng chuỗi các char và char* thành char* như thế nào
    There :
    PHP Code:
    #include <iostream>
    #include <string>

    int main()
    {
      
    string s;
      
    char charArr[3] = {'a','b','c'};
      for(
    int x 03; ++x)
      {
        
    += charArr[x];
      }
      
    s.c_str();
      
    std::cout << << std::flush;

    Trong C++ làm thế nào để chuyển một string dạng char* được ghép bởi các ký tự khởi tạo qua mã ASCII

    Ví dụ một chuỗi 4 byte có các mã ASCII : 0x02 0x40 0x70 0x03

    Tớ dùng

    char* data = "";
    data[0] = 02;
    data[1] = 0x40;
    data[2] = 0x70;
    data[3] = 03;
    Đang tính viết cái gì bạn post rõ lên xem, chưa hiểu ý bạn lắm !

  3. #3
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Another alternative way :
    PHP Code:
    #include <iostream>
    #include <cstring>

    charchangeToCharStar(const char *);


    int main()
    {
      
    char arrChar[4] = {'a','b','c''\0'};
      
    char *aString changeToCharStar(arrChar);
      
    std::cout << aString;
    }

    charchangeToCharStar(const char *sS)
    {
      static 
    char charStar[4];
      
    char *ptr charStar;
      for(; *
    sS != '\0'; ++sS){
        *
    ptr++ = *sS;
      }
      *
    ptr '\0';
      return 
    charStar;


  4. #4
    Ngày gia nhập
    01 2007
    Bài viết
    16

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    There :
    PHP Code:
    #include <iostream>
    #include <string>

    int main()
    {
      
    string s;
      
    char charArr[3] = {'a','b','c'};
      for(
    int x 03; ++x)
      {
        
    += charArr[x];
      }
      
    s.c_str();
      
    std::cout << << std::flush;

    Đang tính viết cái gì bạn post rõ lên xem, chưa hiểu ý bạn lắm !
    Cám ơn bạn đã trả lời nhưng mà các char ở đây ko nằm trong các ký tự hiển thị được như 'a', 'b', 'c',... mà là các ký tự điều khiển ví dụ STX(02), ETX(03). Nghĩa là phải dùng hàm để chuyển thành char khi biết mã ascii

    ví dụ như VB là hàm Chr
    dim s as string
    s = Chr(02) + Chr(03)

    thì C++ phải làm thế nào
    Đã được chỉnh sửa lần cuối bởi THE LAST LEAF : 16-02-2008 lúc 12:03 PM.

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    ví dụ như VB là
    dim s as string
    s = Chr(02) + Chr(03)
    Mù VB T_T.
    Mà thực ra ví dụ trên là hack qua lớp string của C++, muốn + cho đúng thì chắc phải viết lại lớp string, còn đơn giản thì dùng strcmp, chuỗi dạng char* thực ra là chuỗi literal của C, not C++.

  6. #6
    Ngày gia nhập
    01 2007
    Bài viết
    16

    Mặc định Hỏi về char và char*

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    Mù VB T_T.
    Mà thực ra ví dụ trên là hack qua lớp string của C++, muốn + cho đúng thì chắc phải viết lại lớp string, còn đơn giản thì dùng strcmp, chuỗi dạng char* thực ra là chuỗi literal của C, not C++.
    Hic, yêu cầu của tớ rất đơn giản chỉ là cộng các char khi chỉ biết mã ascii của chúng về thành chuỗi. Mod nói thế tớ cũng ko hiểu gì

  7. #7
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    PHP Code:
    #include <iostream>
    #include <string>

    int main()
    {
      
    std::string s;
      for(
    int x 65123; ++x)
      {
        
    += x;
      }
      
    std::cout << s;

    Is it ?
    char * size của nó là fixed rồi, muốn + kiểu đó thì chỉ có viết lại lớp string, vì size của char* không có tự động tăng lên được !

  8. #8
    Ngày gia nhập
    01 2007
    Bài viết
    16

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    PHP Code:
    #include <iostream>
    #include <string>

    int main()
    {
      
    std::string s;
      for(
    int x 65123; ++x)
      {
        
    += x;
      }
      
    std::cout << s;

    Is it ?
    char * size của nó là fixed rồi, muốn + kiểu đó thì chỉ có viết lại lớp string, vì size của char* không có tự động tăng lên được !
    Cái này sử dụng trên VC++ 6.0 báo lỗi

    PHP Code:
    void CTest1Dlg::OnOK() 
    {
        
    std::string x;
        
    CHARdata "\x04\x40\x51\x05";  

        
    m_Serial.Write(data4);

    C:\Program Files\Microsoft Visual Studio\MyProjects\Test1\Test1Dlg.cpp(97) : error C2653: 'std' : is not a class or namespace name
    C:\Program Files\Microsoft Visual Studio\MyProjects\Test1\Test1Dlg.cpp(97) : error C2065: 'string' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\Test1\Test1Dlg.cpp(97) : error C2146: syntax error : missing ';' before identifier 'x'
    C:\Program Files\Microsoft Visual Studio\MyProjects\Test1\Test1Dlg.cpp(97) : error C2065: 'x' : undeclared identifier

  9. #9
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Chưa bao h xài Visual C++ 6.0, đọc help nó xem sao, vì thằng Visual C++ 6.0 nó khác 1 chút, down thử dev-cpp, hay gcc về xài, Visual C++ 2008 từ microsoft cũng được.

  10. #10
    Ngày gia nhập
    01 2007
    Bài viết
    16

    VC++6.0 help cần bộ MSDN cũ thì mình ko có

    Tóm tắt lại yêu cầu cuối cùng của mình nhờ mọi người giúp đỡ. Ví dụ mình có 3 ký tự lần lượt có mã ASCII là 65, 66, 67. Làm cách nào cộng nối 3 ký tự đó thành một chuỗi char* = "ABC". (65, 66, 67 chỉ là các mã ASCII ví dụ)

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

  1. Lập trình C Gặp lỗi error C2440: '=' : cannot convert from 'char *' to 'char [50]'
    Gửi bởi Hades_Huynh 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: 21-11-2013, 01:38 PM
  2. Tìm SV theo tên trong DSLK đơn, lỗi invalid conversion from `char' to `const char*'
    Gửi bởi dk411 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 02-11-2011, 01:55 PM
  3. Lỗi của kiểu dữ liệu Char và cách nhập giá trị nguyên vào biến Char?
    Gửi bởi fcbik58 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 08-08-2011, 11:27 AM
  4. Bài tập C ham timkiem thông báo lổi:invalid conversion from `char' to `const char*'
    Gửi bởi weboys 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: 22-05-2011, 09:45 PM
  5. 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

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