Sari la conținut
Forum Roportal
Ugle

String/Sir de caract?

Evaluează acest topic

Postări Recomandate

Am mai multe stringuri puse intr`un vector si inca o variabila string numita "a"

Eu vreau ca sa afisez toate stringurile din acel vector egale sau care il contin pe "a" ca substring.

Intrebarea mea e ce conditie pun sa fac acest lucru? :crazy:

Pe net am gasit niste functii gen str.fiind(a) care imi returneaza nush ce valoare sau npos(nu am inteles exact)...dar acelea merg doar daca elem din vector erau declarate string...pe cand eu le-am declarat char var1[100] (acum nu stiu daca fac confuzie intre string si sir de caractere oricum sper sa ma lamuriti).

Daca intradevar eu am siruri de caractere cum pot sa fac ceea ce vreau fara sa schimb tipul variabilelor?

Partajează acest post


Link spre post
Distribuie pe alte site-uri

1) pai trebuie sa parcurgi vectorul si verifici daca substringul tau e in stringul curent(uite mai jos ce zic astia in standard http://www.msoe.edu/eecs/ce/courseinfo/stl/string.htm)

 

size_type find (const string& str, size_type pos);

Search for the first occurrence of the substring str in the current string, starting at position pos. If found, return the position of the first character. If not, return a special value (called string::npos). The member function rfind does the same thing, but returns the position of the last occurrence of the specified string.

 

string str16 = "abcdefghi";

string str17 = "def";

string::size_type pos = str16.find (str17,0);

cout << pos << endl; // 3

pos = str16.find ("AB",0);

if (pos == string::npos) cout << "Not found" << endl;

 

2) string nu exista in c++ din cate tin eu minte...nu ma am cu c++, sunt un fan inrait delphi :lol:

3) operatiile de cautare pe siruri de caractere(stringuri cum zici tu) nu modifica sirul initial de caractere

Editat de radu84

Partajează acest post


Link spre post
Distribuie pe alte site-uri

stiu funtia str.find(a) dar aceasta imi da eroare deoarece variabilele din vectorul meu sunt declarate asa:

"char a1[100];",si astfel la linia "string::size_type pos = str16.find (str17,0);" primesc aceasta eroare

Error:noname00.cpp(11,8 ):Structure required on left side of . or .*

Editat de Ugle

Partajează acest post


Link spre post
Distribuie pe alte site-uri

pana la urma am rezolvat....functia ep care o cautam era strstr(a,b);

acum am alta problema:

o variabila dintre astea 2 nu este un sir de caractere propriu`zis,ci un un pointer catre primul caracter dintr`un sir de caract.Astfel la linia strstr(a,b); imi da urmatoarea eroare:

Could not find a match for 'strstr(char *,char)'

Cum fac ca din acel char * sa fac char simplu? :lol:

Ma pot ajuta si de alta variabila daca este nevoie :doh:

Partajează acest post


Link spre post
Distribuie pe alte site-uri

Vezi daca nu este o functie stristr; daca nu converteste-le in lowercase: if (isupper(ch)) ch = tolower(ch)

Partajează acest post


Link spre post
Distribuie pe alte site-uri

strcpy(a,x);
  for(v=0;v<=strlen(a);v++)a[v]=toupper(a[v]);
  for(i=1;i<=n;i++)
  {
  	strcpy(b,t[i].str);
	for(v=0;v<=strlen(b);v++)b[v]=toupper(b[v]);
  	find=strstr(b,a);
...................................................

 

nam gasit asa ceva...pana la urma am mai luat 2 variabile si le`am transformat pe toate in litere mari si am facut

strstr() :swoon:

Acum vreau sa fac si un meniu cam cu 6-7 articole....stiu ca se face cu switch dar in rest nu prea am idei e primu care il fac :focus: .....puteti sa`mi dati niste idei sau daca aveti codul de la niste programe care au meniu....c`as fi recunoscator :blink:

Editat de Ugle

Partajează acest post


Link spre post
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum

×