Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    lỗi chương trình trên Dev C++

    mong các pro giúp đỡ [IMG]images/smilies/smile.png[/IMG]
    cod:
    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    const char *s1="abc123"; char *s2;
    int i;
    for(i=0;s1[i]!=0;i++)
    s2=(char*)malloc(i+1);
    s2[i]=s1[i];
    printf("s2 = %s", s2);
    free(s2);
    return 0;
    }
    kết quả trên Dev C++: s2=ÉU6
    thế là sao???mong các tiền bối ra tay giúp đỡ [IMG]images/smilies/Cry.gif[/IMG]

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi tungnguyen0104
    mong các pro giúp đỡ [IMG]images/smilies/smile.png[/IMG]
    cod:
    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    const char *s1="abc123"; char *s2;
    int i;
    for(i=0;s1[i]!=0;i++)
    s2=(char*)malloc(i+1);
    s2[i]=s1[i];
    printf("s2 = %s", s2);
    free(s2);
    return 0;
    }
    kết quả trên Dev C++: s2=ÉU6
    thế là sao???mong các tiền bối ra tay giúp đỡ [IMG]images/smilies/Cry.gif[/IMG]
    Bạn trả lời dùm tôi cái dòng này chỗ in đậm nghĩa là sao rồi tôi sẽ sửa giúp bạn: for(i=0;s1[i]!=0;i++)

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    - mục đích đoạn code này là gì vậy cậu? , còn về code thì lôm côm quá, ko hiểu ý đồ, nếu mà đoạn code này có mục đích chép xâu s1 sang xâu s2 thì :

    - câu (s1[i] != 0) nghĩa là khi mà kí tự thứ i của xâu s1 khác kí tự có mã ascii là 0 (ký tự null) => có lẽ bạn muốn xác định độ dài của xâu ở đây thì bạn phải so sánh với ký tự kết thúc xâu chứ => viết là (s[i] != '\0');

    - thứ 2 là hết dòng for (...) nếu không có dấu chấm phẩy thì nó hiểu là mỗi vòng lại thực hiện câu lệnh s2 = (char*) .... đó một lần => bạn phải để dấu ':' ở cuối dòng for như thế thì nó chỉ tăng i lên 1 và hết vòng for giá trị của i sẽ là độ dài của xâu s1 dựa vào đó bạn mới khởi tạo động s2 được.

    - bây giờ bạn mới tạo một vòng for để gán các phần tử của s2 bằng các phần tử tương ứng của s1

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    s[i] != 0 hay s[i] != '\0' hay s[i] đều đc mà ?

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •