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

Đề tài: Sử dụng Hàm strcpy() và strcat() trong lập trình C !!!

  1. #1
    Ngày gia nhập
    03 2008
    Nơi ở
    Đà Nẵng city
    Bài viết
    40

    Wink Sử dụng Hàm strcpy() và strcat() trong lập trình C !!!

    Đề : nhập chuỗi 1,2, copy chuỗi 1 vào 3, nối chuỗi 2 vào 3, in 3 chuỗi mỗi hàng .
    Code sau, lỗi post dưới nha :

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4.  
    5. main()
    6. {
    7.       char *ptr1,*ptr2,*ptr3;
    8.       char str1[10],str2[10],str3[10];
    9.      
    10.       printf("Nhap chuoi ki tu 1:");gets(str1);
    11.       printf("Nhap chuoi ki tu 2:");gets(str2);
    12.      
    13.       ptr1=str1;
    14.       ptr2=str2;
    15.       ptr3=str3;
    16.      
    17.       for(int i=0;i<strlen(str1);i++)
    18.               strcpy(*(ptr3+i),*(ptr1+i));
    19.              
    20.       for(int i=0;i<strlen(str2);i++)
    21.               strcat(*(ptr3+i),*(ptr2+i));
    22.              
    23.       for(int i=0;i<strlen(str1);i++)
    24.       {
    25.               printf("%s",*(ptr1+i));
    26.               printf("\n");
    27.       }
    28.      
    29.       for(int i=0;i<strlen(str2);i++)
    30.       {
    31.               printf("%s",*(ptr2+i));
    32.               printf("\n");
    33.       }
    34.              
    35.       for(int i=0;i<strlen(str3);i++)
    36.       {        
    37.               printf("%s",*(ptr3+i));
    38.               printf("\n");
    39.       }
    40.              
    41.       getch();
    42.      
    43. }

    - Bài này cố ý dùng truy xuất địa chỉ = con trỏ, lỗi :
    18 - invalid conversion from `char' to `char*'
    18 - initializing argument 1 of `char* strcpy(char*, const char*)'
    18 - invalid conversion from `char' to `const char*'
    18 - initializing argument 2 of `char* strcpy(char*, const char*)'
    21 - invalid conversion from `char' to `char*'
    21 - initializing argument 1 of `char* strcat(char*, const char*)'
    21 - conversion from `char' to `const char*'
    21 - initializing argument 2 of `char* strcat(char*, const char*)'

    Xem ra gặp lỗi này ở chương chuỗi hơi nhìu, cái này mà ko làm rõ là mệt thật, giúp mình nha
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 13-08-2008 lúc 02:16 AM. Lý do: Thêm thông tin bài viết

  2. #2
    Ngày gia nhập
    08 2008
    Nơi ở
    Liên Bang Nga
    Bài viết
    46

    Bạn ơi, bạn đọc lại lý thuyết thật kĩ vào, cần phân biệt char là kí tự, còn char* là chuỗi kí tự nhé, đừng nhầm lẫn. Xem kỹ xem các hàm trên thao tác với từng xâu ký tự, hay thao tác với đơn lẻ từng kí tự?
    Tôi thường thích những cái gì mà tôi không bao giờ có được...

  3. #3
    Ngày gia nhập
    03 2008
    Nơi ở
    Đà Nẵng city
    Bài viết
    40

    To lienthang: hì , tại chưa đọc kĩ lý thuyết. Nguyên văn nó như sau : strcmp(str1,str2) ,where str1 and str2 are two character arrays that have been declared and initialized.

    Code ko dùng con trỏ :
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4.  
    5. main()
    6. {
    7.       //char *ptr1,*ptr2,*ptr3;  
    8.       char str1[10],str2[10],str3[10];
    9.      
    10.       printf("Nhap chuoi ki tu 1:");gets(str1);
    11.       printf("Nhap chuoi ki tu 2:");gets(str2);
    12.  
    13.       strcpy(str3,str1);
    14.       strcat(str3,str2);
    15.  
    16.       printf("\n%s",str1);      
    17.       printf("\n%s",str2);                      
    18.       printf("\n%s",str3);
    19.                    
    20.       getch();
    21.      
    22. }
    -Cũng bài trên mà mình dùng con trỏ đc ko? Làm cách nào để dùng biến con trỏ chỉ đến toàn bộ mảng kí tự, nếu khai báo 3 biến con trỏ như trên code, và thay các str = biến con trỏ hết ? Dùng cả biến con trỏ trong hàm strcmp và strcat.
    Đã được chỉnh sửa lần cuối bởi camping29 : 13-08-2008 lúc 10:52 PM. Lý do: Thêm thông tin bài viết

  4. #4
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Việc cậu truyền vào : strcpy(str3,str1); là việc truyền vào địa chỉ ô nhớ đầu tiên của mảng ký tự str3 và str1 , tương tự với strcat(str3,str2);

    Nếu dùng con trỏ :
    C++ Code:
    1. char *p1 = str1;
    2. char *p3 = str3;
    3. strcpy(p3,p1);

    Hàm strcpy có thể được viết lại như sau :
    C++ Code:
    1. // String Copy
    2. char *strcpy(char *dest, const char *source)
    3. {
    4.     char *p = dest;
    5.     while ((*p++ = *source++))
    6.         ;
    7.    
    8.     return dest;
    9. }

  5. #5
    Ngày gia nhập
    03 2008
    Nơi ở
    Đà Nẵng city
    Bài viết
    40

    Code đã sửa theo cách khác, mặc dù dài dòng như mờ đây là vd về việc truyền vào các con trỏ địa chỉ ô nhớ đầu tiên của mảng ký tự str3,str2,str1 :

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4.  
    5. main()
    6. {
    7.       char *ptr1,*ptr2,*ptr3;  
    8.       char str1[10],str2[10],str3[10];
    9.      
    10.       printf("Nhap chuoi ki tu 1:");gets(str1);
    11.       printf("Nhap chuoi ki tu 2:");gets(str2);
    12.  
    13.       ptr1=str1;
    14.       ptr2=str2;
    15.       ptr3=str3;
    16.      
    17.       strcpy(ptr3,ptr1);
    18.       strcat(ptr3,ptr2);
    19.  
    20.       printf("\n%s",ptr1);      
    21.       printf("\n%s",ptr2);                      
    22.       printf("\n%s",ptr3);
    23.                    
    24.       getch();
    25.      
    26. }

    Thx đã giúp đỡ!
    Đã được chỉnh sửa lần cuối bởi camping29 : 15-08-2008 lúc 12:26 AM. Lý do: Thêm thông tin bài viết

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

  1. Algorithm Lệnh strcpy trong C# là lệnh nào?
    Gửi bởi quangbinhit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 24-05-2011, 08:14 PM
  2. hàm strcpy và strcat có tác dụng gì?
    Gửi bởi icanfeel 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: 26-11-2010, 11:22 AM
  3. lỗi sử dụng lệnh strcpy() trong C++!!!
    Gửi bởi quang_uit 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: 11-11-2010, 10:46 PM
  4. Khắc phục giúp lỗi khi sử dụng hàm strcat và strcpy
    Gửi bởi baby_kute trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 14-09-2010, 12:45 AM
  5. Hàm strcpy() trong VC++ tác dụng như thế nào?
    Gửi bởi cutithongtin trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 10-08-2010, 10:08 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