Em mới học c, đang tập viết hàm tìm vị trí của xâu a trong xâu b nếu ko có in ra -1 ( độ dài chuỗi a < độ dài chuỗi b). Nhưng bị lỗi ở chỗ nếu xâu a ngắn thì đc nhưng xâu a dài bị sai. Em debug phát hiện lỗi sai nhưng chưa biết sửa thế nào, các cao nhân giúp em với ạ. Em cảm ơn ạ!
Ví dụ:
em nhập vào:
123456789
đầu ra:
1234567 ra 0
12345678 ra -1 (đúng phải ra 0)
#include <stdio.h>
#include <string.h>
int timvitri(char a[], char b[])
{
int length1 = strlen(a) - 1;
int length2 = strlen(b);
int i, j;
for (i = 0; i < length1 - length2; i++)
{
char c[100];
int z = 0;
for (j = i; j < i + length2; j++, z++)
{
c[z] = a[j];
}
if (strcmp(c, b) == 0)
{
return i;
}
}
return -1;
}
int main()
{
char a[100];
fgets(a, 100, stdin);
char b[100] = "1234567";
char c[100] = "12345678";
int vitri1 = timvitri(a, b);
int vitri2 = timvitri(a, c);
printf("%d\n", vitri1);
printf("%d", vitri2);
return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?