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àm trả về một chuỗi hoặc mảng ?

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

    Mặc định Hàm trả về một chuỗi hoặc mảng ?

    Em mới học C, xin hỏi các bác làm sao để một hàm trả về 1 chuỗi hoặc mảng n chiều?

    Nếu trả về con trỏ thì làm sao lấy được cái chuỗi (mảng) gốc đây ?
    Em làm trong VC++, trả về 1 con trỏ, nhưng khi ấn F5 nó có cái "warning : point to local variable or temporary."
    Lúc chạy thì chuỗi lấy được trông rất lạ, nó có thêm nhiều kí tự lung tung đằng sau.

    Ngoài ra cho em hỏi có hàm nào trong C(C++) nhận mã kí tự & trả về kí tự ko? (vd : ten_ham(65) trả về 'A' ý)

    Em thử đoạn code này mãi không được nè :

    char my_str[100] = "KAKA";
    int i=1;
    my_str[0] = char(i);
    printf("%s" , my_str);

    Nó hiện ra cái mặt cười ở vị trí số chữ K bị thay thế!!!!

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

    Trong forum có rồi đây này :
    http://forums.congdongcviet.com/showthread.php?t=5718
    Chú này nhác search quá!!!
    Nhận mã kí tự trả về kí tự đó trong bảng ASCII thì không cần dùng hàm mà
    vd : printf("%c",65);
    thì màn hình hiện là 'A'.
    Cái đoạn code của chú nó ra mặt cười là nó cười chú đó
    cái đó chú phải gán int i='K'
    Đã được chỉnh sửa lần cuối bởi datdien : 12-12-2008 lúc 08:11 PM.
    Quên hết rồi

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

    Hì, sorry, lười tìm thiệt. Tại mà CongdongCviet.com load chậm quá. Có phải đang bị DDOS không nữa.

    Không phải muốn nhập mã kí tự vào để in ra màn hình đâu datdien ơi.
    Ví dụ muốn hàm trả về kí tự nhưng để lưu vào biến thì sao?

    Cách dùng dùng printf() để ép kiểu thì mình cũng biết mà. À, phải nói về ép kiểu, thôi mình biết rồi. Có phải chính là ép từ kiểu int sang kiểu char thì tự nhiên 65 nó sẽ thành 'A' ko ?

    Còn về cái ví dụ đoạn code của mình, mình muốn ghép số 1 ( char '1') vào vị trí đầu tiên của chuỗi "KAKA". Ý định là xuất ra: "1AKA", nhưng ko hiểu sao nó lại thành ---> (^_^)AKA
    Đã ép kiểu i từ int thành char mà nó thành cái mặt đó đó.
    Giúp mình nhá :">

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

    Datdien cho mình hỏi luôn nhé, cái hàm nào mà nhận vào kí tự 'A' và số 5 thì nó trả về chuỗi 'AAAAA' không ? (Cái này không bít search thế nào)
    Tks nhìu.

  5. #5
    Ngày gia nhập
    01 2008
    Nơi ở
    UIT
    Bài viết
    129

    Trích dẫn Nguyên bản được gửi bởi gadapchetvoi Xem bài viết
    Datdien cho mình hỏi luôn nhé, cái hàm nào mà nhận vào kí tự 'A' và số 5 thì nó trả về chuỗi 'AAAAA' không ? (Cái này không bít search thế nào)
    Tks nhìu.
    Code:
    char* Generate(char c, int v)
    {
        int i;
        char* result;
        result = (char*)calloc(v,sizeof(char));
        for(i=0;i<v;++i)
             result[i] = c;
        return result;
    }

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

    Mặc định Hàm trả về một chuỗi hoặc mảng ?

    Thanks Hok_bit_zi
    Có phải dùng xong giá trị này là phải free cái con trỏ đún ko?

  7. #7
    Ngày gia nhập
    01 2008
    Nơi ở
    UIT
    Bài viết
    129

    Đúng vậy !
    Trong chương trình bạn chỉ cần
    Code:
    char *str;
    str = Generate(A,5);
    là đã có chuỗi với 5 kí tự "AAAAA". Sau khi dùng xong thì free(str)

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

    char my_str[100] = "KAKA";
    int i=1;
    my_str[0] = char(i);
    printf("%s" , my_str);
    cái này phải gán int i='1'; bạn ạ.
    Quên hết rồi

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

    Trích dẫn Nguyên bản được gửi bởi datdien Xem bài viết
    cái này phải gán int i='1'; bạn ạ.
    Mình tưởng ép kiểu int sang char là được rồi còn gì ?
    int i=1;
    thì
    char(i) = '1';
    đúng không ?

    Còn biến i ko thể khai báo là i='1' vì nó còn phải thực hiện lệnh
    i++;
    nữa !

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

    Hok_bit_gi ơi, hàm của bạn lúc xuất ra chuỗi nó lại có thêm 1 dãy các số 2 (hay chữ z) nhỏ nhỏ nằm sau chuỗi chuẩn. Làm sao đây ?
    VD thế này nè :

    char *str;
    str = Generate('A',5);
    printf("%20s" , str);

    Nó hiện ra :

    AAAAAzzzzzz

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

  1. Hàm nối chuỗi 2 vào sau chuỗi 1 không trả về chuỗi kết quả.
    Gửi bởi faq.c trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 3
    Bài viết cuối: 28-10-2013, 11:28 PM
  2. Phép cộng chuỗi trong sql hoạt động thế nào ?
    Gửi bởi GaPro trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 29-11-2010, 11:04 PM
  3. Bài tập C tối ưu hóa chuỗi nhập từ bàn phím(xóa ký tự trắng thừa trong chuỗi)
    Gửi bởi kitti trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 27-10-2010, 07:11 PM
  4. Bài tập C| Trắc nghiệm C | In ra chuỗi nào trong các chuỗi???
    Gửi bởi nguoingu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 16-05-2009, 11:05 AM
  5. Bài tập C | Kiểm tra số hoặc chuỗi có đối xứng ko? help me!!!
    Gửi bởi lavender trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 29-04-2009, 04:36 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