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

Đề tài: Nối 2 chuỗi dùng con trỏ, code mình lỗi ở đâu

  1. #1
    Ngày gia nhập
    01 2010
    Nơi ở
    Hà Nội
    Bài viết
    37

    Mặc định Nối 2 chuỗi dùng con trỏ, code mình lỗi ở đâu

    Mình làm bài nối 2 chuỗi nhập từ bàn phím thành 1 chuỗi mới dùng con trỏ, nhưng nếu nhập với số lượng kí tự nhiều thì chuỗi mới nối có thêm nhiều kí tự random. Khi mình sử dụng printf ngay trong hàm main thì không bị lỗi đó, nhưng viết hàm print ở ngoài thì bị.

    C Code:
    1. #include <stdio.h>
    2. #include <string.h>
    3.  
    4. void copy(char *ptr1,char *ptr2,char *ptr3)
    5. {
    6.     int i=0, j=0;
    7.     for (i=0; i<strlen(ptr1); i++)
    8.         ptr3[i] = ptr1[i];
    9.     for (j=0; j<strlen(ptr2); j++)
    10.         ptr3[strlen(ptr1)+j] = ptr2[j];
    11. }
    12.  
    13. void print(char *ptr)
    14. {
    15.     int i=0;
    16.     for (i=0; i<strlen(ptr); i++)
    17.         printf("%c",ptr[i]);
    18. }
    19.  
    20. int main()
    21. {
    22.     char a[1000],b[1000],c[2000];
    23.     char *ptr1, *ptr2, *ptr3;
    24.  
    25.     printf("Enter first string : ");
    26.     gets(a);
    27.     printf("\nEnter second string : ");
    28.     gets(b);
    29.  
    30.     ptr1 = &a[0];
    31.     ptr2 = &b[0];
    32.     ptr3 = &c[0];
    33.  
    34.     copy(ptr1,ptr2,ptr3);
    35.  
    36.     print(ptr1);
    37.     printf("\n");
    38.  
    39.     print(ptr2);
    40.     printf("\n");
    41.  
    42.     print(ptr3);
    43.     printf("\n");
    44.  
    45.     return 0;
    46. }

    Bạn nào biết giúp mình nhé. Cảm ơn!
    Cám ơn mỗi sớm mai thức dậy
    Ta có thêm ngày nữa để yêu thương

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    46

    Bạn phải thêm kí tự kết thúc chuỗi '\0' vào ptr3.

  3. #3
    Ngày gia nhập
    01 2010
    Nơi ở
    Hà Nội
    Bài viết
    37

    Trích dẫn Nguyên bản được gửi bởi Halen Xem bài viết
    Bạn phải thêm kí tự kết thúc chuỗi '\0' vào ptr3.
    Đúng rồi, cảm ơn bạn nhé. Lúc đọc sách đã biết là phải chú ý cái kí tự kết thúc này, lúc làm thì lại quên béng mất
    Cám ơn mỗi sớm mai thức dậy
    Ta có thêm ngày nữa để yêu thương

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

  1. Sắp xếp 4 số a,b,c,d nhập từ bàn phím không dùng mảng chuỗi. Xem giúp code đúng không?
    Gửi bởi vu159951 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 4
    Bài viết cuối: 16-11-2012, 11:34 AM
  2. code tìm chuỗi con trong chuỗi lớn bị lỗi khó hiểu..mọi người giúp mình vơi
    Gửi bởi giophieulang trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 30-05-2012, 10:35 AM
  3. Bài tập C++ Dùng strtok cắt chuỗi và lỗi khi dùng atof() chuyển char sang float
    Gửi bởi salomontong trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 10-03-2012, 05:18 PM
  4. Mọi người giải thích dùm về đoạn code về chuỗi ló tự có dùng struct với!!!!!!!!!
    Gửi bởi duynguyen_a3win trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 09-01-2012, 12:37 AM
  5. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM

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