Read-only archive. Login and posting are unavailable.

PDA

View Full Version : nhờ các bạn giỏi lập trình C tí


tienhung91
28-12-2010, 23:00
mình có bài toán thế này : viết chương trình nhập vào 1 chuỗi và 1 từ , sau đó hãy thay thế từ đó bằng từ " xxx" trog chuỗi vừa nhập nếu từ đó xuất hiện trong chuỗi :beauty::beauty::beauty: please giúp dùm

Macro Kat
28-12-2010, 23:27
#include
#include
#include

int BruteForce(char *a, char *p)
{
int i=0, j=0;
int n=strlen(a);
int m=strlen(p);
do
{
if(a[i]==p)
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
while((i=m)
return i-m;
else
return -1;
}

char *replace(char *a)
{
char *p;

printf("Nhap vao chuoi nho: ");
gets(p);
if(BruteForce(a,p) ==-1)
{
printf("\nChuoi nho khong tim thay, ti`nh yeu oi!");
return NULL;
}
else
{
int lenp=strlen(p);
int pos=BruteForce(a,p);
for(int k=0; k<lenp;k++)
{
a='x';
++pos;
}
}
return a;
}

void main()
{
clrscr();
char *string;
char *post_string;
printf("Nhap vao chuoi ban dau: ");
gets(string);
printf("\nChuoi sau khi thay the: %s",replace(string));
getch();
}

:matrix: :matrix: :matrix:

tienhung91
28-12-2010, 23:29
để thử :D iu quá :X , bạn cho mình cái thuật toán thử

_Kain_
28-12-2010, 23:35
91. năm 2 mà không biết làm bài này???

ancomrang
28-12-2010, 23:49
nhìn vào code mà tự đọc ra thuật toán, đòi gì nữa :<

tienhung91
28-12-2010, 23:51
người ta mới học C dc mấy ngày @@

Macro Kat
29-12-2010, 00:17
Mới tắm xong :byebye:

Thuật toán Brute Force để tìm chuỗi con trong chuỗi lớn thì nó làm như thế này:
Ví dụ: Tìm chuỗi "ahh" trong chuỗi "aaaahh"
aaaahh
ahh //kí tự đầu tiên đúng

aaaahh
ahh //kí tự thứ hai sai

aaaahh
-ahh //dịch sang bên phải một kí tự rùi lại so tiếp như cũ

...

return i-m là vị trí tìm thấy chuỗi con trong chuỗi lớn, return -1 là báo không tìm thấy

cuongbn
29-12-2010, 00:40
91. năm 2 mà không biết làm bài này???
90 năm 3 biết làm nhưng không làm
Bác nào mà đủ trình viết chương trình này bằng BrainFuck thì em :stick::stick::stick:sẵn sàng chiều các bác hết ý :*:*:*:*

tienhung91
29-12-2010, 00:42
Mới tắm xong :byebye:

Thuật toán Brute Force để tìm chuỗi con trong chuỗi lớn thì nó làm như thế này:
Ví dụ: Tìm chuỗi "ahh" trong chuỗi "aaaahh"
aaaahh
ahh //kí tự đầu tiên đúng

aaaahh
ahh //kí tự thứ hai sai

aaaahh
-ahh //dịch sang bên phải một kí tự rùi lại so tiếp như cũ

...

return i-m là vị trí tìm thấy chuỗi con trong chuỗi lớn, return -1 là báo không tìm thấy
mà mình chạy đến bước 2 là nó đứng chỉ , chạy c-free , máy vaio e23 :dribble:

Macro Kat
29-12-2010, 00:45
mà mình chạy đến bước 2 là nó đứng chỉ , chạy c-free , máy vaio e23 :dribble:

:-s
Cái code này mình viết trên BORLANDC 3.1
Nếu bác xài IDE khác thì bác chịu khó thay thư viện khác, dùng hàm khác tương đương. Mình nghĩ là nó có khác biệt ở cái thư viện string.h và các hàm liên quan trong BORLANDC với cái C-free của bác

tienhung91
29-12-2010, 00:51
ui chịu , mình mới học có mấy ngày chưa hiểu hết tới đó hic hic

Macro Kat
29-12-2010, 01:06
Mới học vài ngày mà cho làm bài này thì cũng hơi khó. Bác kiếm trong cái c-free của bác xem nó có hàm pre-defined dùng để tính độ dài chuỗi không thì thay vào cái hàm strlen(char *) của mình. Mình coi lại code của mình thì thấy chỉ có chỗ đó là chắc có xung khắc thôi

tienhung91
29-12-2010, 10:19
Mới học vài ngày mà cho làm bài này thì cũng hơi khó. Bác kiếm trong cái c-free của bác xem nó có hàm pre-defined dùng để tính độ dài chuỗi không thì thay vào cái hàm strlen(char *) của mình. Mình coi lại code của mình thì thấy chỉ có chỗ đó là chắc có xung khắc thôi

không , strlen mình xài trên c-free dc ,:D ông thầy cho list 20 bài có 5 bài dạng nì:ah: làm trên tinh thần thầy không dạy các em tự học

mình chạy được nhưng đến đoạn nhập từ thứ 2 thì nó không chạy nữa :confident: