Napisz program sprawdzający czy w danym tekście występuje poszukiwany fragment tekstu

0

Napisz program sprawdzający czy w danym tekście występuje poszukiwany fragment tekstu

 
#include <iostream>
#include <string>

using namespace std;

int main()
{
	int rozmiar;
	string wyraz;
	string szukanyFragment;
	
	cout<<"Podaj wyraz: ";
	cin>>wyraz;
	cin.ignore();
	rozmiar = wyraz.length();
	cout<<"Podaj fragment tekstu ktory mam znalezc: ";
	cin>>szukanyFragment;
	cin.ignore();


	for(int i=0; i<rozmiar; i++)
	{
		if(wyraz[i] == szukanyFragment[i])
		{
			cout<<"\nWybrany fragment znajduje sie w "<<wyraz<<".";
			break;
		}
	}
	
	cout<<"\n";
	system("PAUSE");
	return 0;
}

Za bardzo nie wiem jaki taki program napisać, napisałem trochę w C++ ale w ten sposób sprawdzi czy oba wyrazy są jednakowe... a bardziej potrzebuje tego programu w czystym C.

0

google: strstr

0

Dzięki za podpowiedzi czego szukać...

 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main ()
{
	char str1[] = "Przykladowe zdanie w ktorym bedziemy szukac wyrazu.";
	char str2[] = "zdanie"; 
    
	char * wynik = strstr( str1, str2 );
    printf( "\nZnaleziono lancuch: %s\n", wynik );
	system("PAUSE");
	return 0;
}

Czy da się zrobić tylko, żeby program napisał, że znaleziono słowo, którego szukałem ?

Drugie pytanie, dlaczego w tym przypadku kompilator zgłasza błąd ?

 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main ()
{
	char str1[] = "Przykladowe zdanie w ktorym bedziemy szukac wyrazu.";
	char str2[100]; 
    
	printf("Podaj tekst: ");
	scanf("%s", &str2);
	char * wynik = strstr( str1, str2 );
    printf( "\nZnaleziono lancuch: %s\n", wynik );
	system("PAUSE");
	return 0;
}

0
  1. if(strstr( str1, str2 )) printf( "\nZnaleziono lancuch: %s\n", str2 );
  2. scanf("%99s", str2);
0
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main ()
{
	char str1[] = "Przykladowe zdanie w ktorym bedziemy szukac wyrazu.";
	char str2[100]; 
	
	printf("Podaj tekst: ");
	scanf("%99s", str2);
	char * wynik = strstr( str1, str2 );
	if(strstr( str1, str2 ))   
		printf( "\nZnaleziono lancuch: %s\n", str2 );
    system("PAUSE");
    return 0;
}

Dostaję:

 
1>------ Build started: Project: 10_FragmentTekstu, Configuration: Debug Win32 ------
1>  10_FragmentTekstu.c
1>f:\dokumenty\studia\programowanie\projekty c\pdf3 - zadania\10_fragmenttekstu\10_fragmenttekstu\10_fragmenttekstu.c(11): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : see declaration of 'scanf'
1>f:\dokumenty\studia\programowanie\projekty c\pdf3 - zadania\10_fragmenttekstu\10_fragmenttekstu\10_fragmenttekstu.c(12): error C2143: syntax error : missing ';' before 'type'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

1 użytkowników online, w tym zalogowanych: 0, gości: 1