Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: strstr in MingW  (Citit de 1872 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ILDottore
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« : Ianuarie 15, 2011, 14:56:19 »

Cum se foloseste functia strstr in Ming?

Nu da eroare la compilare dar la debug la primul pas : setstate(ios_base::failbit);

Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #1 : Ianuarie 15, 2011, 14:57:13 »

http://www.cplusplus.com/reference/clibrary/cstring/strstr/
Memorat
ILDottore
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #2 : Ianuarie 15, 2011, 15:02:40 »

Cod:
#include<fstream>
#include<cstdlib>
#include<string>
using namespace std;
fstream f("date.in",ios::in);
fstream g("date.out",ios::out);
char s[300], c[20];
char *p;
int i;
int main(){
f.get(c,20);
while (f.getline(s,300))
{p=strstr(s,c);
if (p)
strcpy(p,p+strlen(c));
}

g<<s;
return 0;}

Asta nu ruleaza cum trebuie.(din ce am observat eu din cauza liniei cu strstr) Nu da eroare la compilare dar la debug cum am spus si in primul post setstate(ios_base::failbit);
 
De ce?
« Ultima modificare: Ianuarie 15, 2011, 15:25:21 de către Bogdan Stoica » Memorat
laurion
De-al casei
***

Karma: -41
Deconectat Deconectat

Mesaje: 102



Vezi Profilul
« Răspunde #3 : Februarie 22, 2011, 19:18:40 »

Nu este nicio eroare la compilare sau la folosirea functiei strstr, ci la gandirea algoritmului. Spune ce vrei sa faci mai exact, ce trebuie sa faca problema?
Din cate vad eu tu aici citesti un sir, apoi il cauti in cate un rand din fisier si daca il gasesti il elimini de acolo(doar prima aparitie va fi eliminata).

La sfarsit afisezi "s", care va fi NULL, deoarece ai while(f.getline(s,300)) si la ultima evaluare a expresiei f.getline(s,300), s va primi valoarea NULL deoarece ai ajuns la sfarsitul fisierului, si vei iesi din while.

Poate ai vrea sa pui g<<s inainte de a iesi din while:
Cod:
while (f.getline(s,300))
{p=strstr(s,c);
if (p)
strcpy(p,p+strlen(c));
g<<s;
}
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines