Hi, I am

Ngô Tôn

I am a programmer.

Home / Programming / C/C++ / Tìm chuỗi con trong 1 chuỗi

Tìm chuỗi con trong 1 chuỗi

Yêu cầu: Tìm chuỗi con trong 1 chuỗi khác.

  • Nếu tìm thấy trả về vị trí xuất hiện đầu tiền của chuỗi con trong “chuỗi cha”.
  • Nếu không tìm thấy trả về -1

Thuật toán:

B1: Lần lượt so sánh chuỗi con cần tìm với N kí tự của chuỗi cha (N = chiều dài chuỗi con cần tìm kiếm, dùng hàm strncmp())

B2. Nếu không tìm thấy, dịch con trỏ tới phần tử tiếp theo của chuỗi cha. Quay lại bước 1.

B3. Nếu tìm thấy trả về vị trí xuất hiện của chuỗi con trong chuỗi cha.

Hoặc các bạn có thể sử dụng hàm có sẵn: strstr()

Code:
/************************Find sub-string**********************/
#include "stdio.h"
#include "conio.h"
#include "string.h"


int findsubstr(const char *str, char *sub);

void main()
{
char str[] = "ngoton.it blog for developer";
char sub1[] = "blog";
char sub2[] = "dev";
char sub3[] = "blog for developer";
char sub4[] = ".";
printf("str = '%s'\n", str);
printf("'%s' at %d\n", sub1, findsubstr(str, sub1));
printf("'%s' at %d\n", sub2, findsubstr(str, sub2));
printf("'%s' at %d\n", sub3, findsubstr(str, sub3));
printf("'%s' at %d\n", sub4, findsubstr(str, sub4));
getch();
}

/************************************************
Find sub-string in string
Return: -1 if not found
x (starting point in string) if found
*************************************************/
int findsubstr(const char *str, char *sub)
{
const char *p = str;
int len = strlen(sub);
while(*p != NULL)
{
if (strlen(p) >= len)
{
if (strncmp(p, sub, strlen(sub)) == 0)
{
return (p - str);
}
}
else
{
break;
}
p++;
}
return -1;
}

Kết quả:

Yêu cầu: Tìm chuỗi con trong 1 chuỗi khác. Nếu tìm thấy trả về vị trí xuất hiện đầu tiền của chuỗi con trong “chuỗi cha”. Nếu không tìm thấy trả về -1 Thuật toán: B1: Lần lượt so sánh chuỗi con cần tìm với N kí tự của chuỗi cha (N = chiều dài chuỗi con cần tìm kiếm, dùng hàm strncmp()) B2. Nếu không tìm thấy, dịch con trỏ tới phần tử tiếp theo của chuỗi cha. Quay lại bước 1. B3. Nếu tìm thấy trả về vị trí xuất hiện của chuỗi con trong chuỗi cha. Hoặc các bạn…

User Rating: 5 ( 1 votes)

About ngoton

Ngô Tôn is a programmer. He is crazy about new gadgets and up to date with latest technology trends. Use comments to notify any issues you are facing.

Check Also

Xây dựng một lớp Time mô tả thông tin về giờ, phút giây

Yêu cầu: Xây dựng một lớp Time mô tả thông tin về giờ, phút giây. …

Leave a Reply

Your email address will not be published. Required fields are marked *