By GokiSoft.com|
15:03 03/12/2021|
Lập Trình C
[Nâng cao] Tìm kiếm chuỗi trong chuỗi - Lập trình C
Khai báo 2 chuỗi s1, s2
Đếm số lần xuất hiện chuỗi s2 trong s1. Và in ra vị trí tìm thấy.
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)
![GokiSoft.com [Teacher]](https://www.gravatar.com/avatar/fc6ba9324e017d540af3613b3a77dd21.jpg?s=80&d=mm&r=g)
GokiSoft.com
2021-12-06 07:35:51
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
//khai bao 2 chuoi
char s1[50], s2[50];
//Nhap du lieu
printf("\nNhap s1 = ");
gets(s1);
printf("\nNhap s2 = ");
gets(s2);
//giai thuat tim kiem
int i, j, length1, length2;
length1 = strlen(s1);
length2 = strlen(s2);
bool isFind;
if(length1 >= length2) {
for(i=0;i<=length1-length2;i++) {
isFind = true;
for(j=0;j<length2;j++) {
if(s1[i+j] != s2[j]) {
isFind = false;
break;
}
}
if(isFind) {
printf("\nVi tri tim thay = %d", i);
}
}
} else {
//do dai s2 > doi dai s1 -> khong tim thay
printf("\nChuoi nhap vao ko hop le!!!");
}
return 0;
}
![Do Trung Duc [T2008A]](https://www.gravatar.com/avatar/2973ac07124f066b4605c535e8d39a99.jpg?s=80&d=mm&r=g)
Do Trung Duc
2020-10-01 13:50:56
#include<stdio.h>
#include<string.h>
int dem(char s1[], char s2[]){
int i,j,count =0,check;
for(i=0;i<strlen(s1);i++){
if(s1[i]==s2[0]){
check =1;
for(j=0;j<strlen(s2);j++){
if(s2[j]!=s1[i+j]){
check = 0;
break;
}
}
if(check==1){
count++;
}
}
}
return count;
}
void Hienthi(char s1[], char s2[]){
int i,j,check,k;
for(i=0;i<strlen(s1);i++){
if(s1[i]==s2[0]){
check =1;
for(j=0;j<strlen(s2);j++){
if(s2[j]!=s1[i+j]){
check = 0;
break;
}
}
if(check==1){
printf("\n");
printf("%s", s2);
for(k=i+strlen(s2);k<strlen(s1);k++){
printf("%c",s1[k]);
}
}
}
}
}
int main(){
char s1[200], s2[200];
printf("Nhap chuoi ban dau s1: ");
gets(s1);
printf("Nhap chuoi tim kiem trong s1 la s2: ");
gets(s2);
printf("Chuoi s2 xuat hien trong chuoi s1 %d lan", dem(s1,s2));
Hienthi(s1,s2);
return 0;
}
![Đặng Trần Nhật Minh [T2008A]](https://www.gravatar.com/avatar/ee8dc5a777ad26f3a962e86c233437cf.jpg?s=80&d=mm&r=g)
Đặng Trần Nhật Minh
2020-09-30 06:48:23
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int countString(char s[],char s2[]) {
int check = 1, cnt = 0;
for (int i = 0; i < strlen(s); i++)
if (s[i] == s2[0]) {
check = 1;
for (int j = 0; j < strlen(s2); j++)
if (s2[j] != s[i + j]) {check = 0; break;}
if (check) cnt++;
}
return cnt;
}
int main() {
char a[100], b[100];
fflush(stdin); fflush(stdout);
gets(a);
fflush(stdin); fflush(stdout);
gets(b);
printf("\nSo lan xuat hien: %d", countString(a, b));
return 0;
}
![Nguyễn Tiến Đạt [T2008A]](https://www.gravatar.com/avatar/b5819cd0adc95c727c7ad0c2bcf6098b.jpg?s=80&d=mm&r=g)
Nguyễn Tiến Đạt
2020-09-27 15:54:32
#include<stdio.h>
#include<string.h>
int Dem(char s1[],char s2[]){
int i,j,ok,dem=0;
for(i=0; i<strlen(s1); i++){
if(s1[i] == s2[0]){
ok = 1;
for(j=0; j<strlen(s2); j++){
if(s2[j] != s1[i+j]){
ok = 0;
break;
}
}
if(ok == 1){
dem++;
}
}
}
return dem;
}
void Hienthi(char s1[],char s2[]){
int i,j,k, ok;
for(i=0;i<strlen(s1);i++){
if(s1[i]==s2[0]){
ok=1;
for(j=0;j<strlen(s2);j++){
if(s2[j]!=s1[i+j]){
ok=0;
break;
}
}
if(ok == 1){
printf("\n");
printf("%s",s2);
for(k=i+1;k<strlen(s1);k++){
printf("%c",s1[k]);
}
}
}
}
}
int main(){
char s1[100],s2[100];
printf("Nhap chuoi ban dau: ");
gets(s1);
fflush(stdin);
printf("Nhap chuoi can tim kiem: ");
gets(s2);
printf("Chuoi can tim kiem xuat hien %d lan",Dem(s1,s2));
Hienthi(s1,s2);
return 0;
}