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

Đề tài: Đoạn mã Xóa chuỗi s2 trong chuỗi s1

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

    Arrow Đoạn mã Xóa chuỗi s2 trong chuỗi s1

    /* Nhap hai chuoi s1 va s2, xoa chuoi s2 trong s1 */

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4.  
    5. void main()
    6. {
    7.     char *s1, *s2;
    8.     clrscr();
    9.     printf("\nNhap chuoi s1: ");
    10.     fflush(stdin);
    11.     gets(s1);
    12.     printf("\nNhap chuoi s2: ");
    13.     fflush(stdin);
    14.     gets(s2);
    15.  
    16.     while (strstr(s2,s1)!=NULL)
    17.     {
    18.         char *p;
    19.         p = strstr(s2,s1);
    20.         int z2=strlen(s2);
    21.         int z1=strlen(s1);
    22.         int i;
    23.         for (i=0; i<z2; i++)
    24.         {
    25.             {
    26.                 *(s1+p)=*(s1+p+1);
    27.             }
    28.             z1--;
    29.         }
    30.     }
    31.     printf("\n%s",s1);
    32.     getch();
    33. }

    Vui lòng để code vào trong tag code. Đọc Nội quy để biết thêm chi tiết
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 04-03-2008 lúc 10:14 AM. Lý do: Nhắc nhở

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

    Bài này đề ra chỉ dc dùng con trỏ, ai biết chỉ giúp mình lỗi nhá. Tại sao lại ko cộng hai con trỏ dc

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

    Ý tưởng của cậu chưa đủ, mình demo cho cậu 1 đoạn nhỏ, nhưng nó chỉ xoá được 1 lần, nếu muốn xoá hết những từ có mặt trong chuỗi đó thì có lẽ phải làm việc thêm 1 chút nữa, nhưng phần này mình dành cho cậu vậy .
    C Code:
    1. #include <cstring>
    2. #include <cstdio>
    3. #include <cstdlib>
    4.  
    5. char *delete_string(int start, int end, const char* _source)
    6. {
    7.   char *newStr = static_cast<char* >(calloc(strlen(_source) + 1, sizeof(char)));
    8.   char *_ptr = newStr;
    9.  
    10.   int position = 0;
    11.   for(; *_source != '\0'; ++_source, ++position)
    12.   {
    13.     if(position < start || position >= end)
    14.       *_ptr++ = *_source;
    15.   }
    16.   *_ptr = '\0';
    17.   return newStr;
    18. }
    19.  
    20. int main()
    21. {
    22.   char word[10];
    23.   char buff[] = "Please delete a word.";
    24.   printf("Please enter a word : ");
    25.   scanf("%s", word);
    26.  
    27.   char *str = word;
    28.   char *_mOrigin = buff;
    29.   char *_mOcurrence;
    30.  
    31.   int position;
    32.  
    33.   _mOcurrence = strstr(_mOrigin, str);
    34.   if(!_mOcurrence)
    35.     printf("Not found !\n");
    36.  
    37.   position = _mOcurrence - _mOrigin;
    38.   char* __reC = delete_string(position, position + strlen(str), buff);
    39.  
    40.   printf("\nAfter delete : \n");
    41.   printf("%s", __reC);
    42.   free(__reC);
    43.   return 0;
    44. }

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

  1. thay thế chuỗi con thứ i trong chuỗi mẹ bằng 1 chuỗi khác
    Gửi bởi nhat1811 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 06-08-2011, 08:25 AM
  2. Algorithm Xóa một chuỗi con trong một chuỗi kí tự dài như thế nào ?
    Gửi bởi hu-xeko trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 01-08-2011, 02:00 PM
  3. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  4. 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
  5. cho 1 chuỗi, tìm 1 từ và xóa từ này trong chuỗi đó nếu tìm thấy
    Gửi bởi trai xu nghe trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 30-01-2010, 03:32 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