Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...
 Kanal D va difuza serialul “...

Upgrade xiaomi mi11

securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...
 

Problema silaba

- - - - -
  • Please log in to reply
6 replies to this topic

#1
CodexVinci

CodexVinci

    New Member

  • Grup: Junior Members
  • Posts: 15
  • Înscris: 27.05.2015
Enunt: Se considera un text de minimum 255 caracter.Realizati un program care afiseaza numarul de aparitii al unei silabe in text.Silaba va fi citita de la tastatura.
Codul facut pana acum :

#include <iostream>
#include <string.h>
using namespace std;
int main ()
{
char v[256],silaba[10],*p;
int aparitii=0;
cout<<"Introduceti txt:";
cin.get (v,256);
cout<<"silaba:";
cin.get (silaba,10);
p=strstr (v,silaba);
  
}
Problema este ca nu stiu cum pot sa iau nu numai prima aparitie a silabei citite ci si restul.Ma gandeam ca dupa ce se face contorizarea a primei aparitii, p-ul nu ar trebui sa mai ia o data aceeasi adresa.Ca si la vector,sa incerce sa contoriseze aparitia si dupa sa verifice celelalte caractere.
Multumesc.

Edited by CodexVinci, 27 May 2015 - 17:12.


#2
sftpdt

sftpdt

    Senior Member

  • Grup: Senior Members
  • Posts: 3,664
  • Înscris: 29.08.2013
strtok

#3
CodexVinci

CodexVinci

    New Member

  • Grup: Junior Members
  • Posts: 15
  • Înscris: 27.05.2015
#include <iostream>
#include <string.h>
using namespace std;
int main ()
{
char v[256],g;
int s=0;
char *p,c[10],sep[]=" ,.";
cin.get (v,256);
cin>>c;
   p=strtok (v,sep);
while (p)
{
g=strstr ( p,const char c);
if (g) s++;
p=strtok (NULL,sep);
}
cout<<s;
}

Dar primesc o eroare :"expected primary-expression before 'const'".
In afara de asta,codul cum este?

#include <iostream>
#include <string.h>
using namespace std;
int main ()
{
char v[256],*g;
int s=0;
char *p,c[10],sep[]=" ,.";
cin.get (v,256);
cin>>c;
   p=strtok (v,sep);
while (p)
{
g=strstr ( p, c);
if (g) s++;
p=strtok (NULL,sep);
}
cout<<s;
}
Asta este codul fara erori,dar daca introduc "lalala" si silaba "la" s=1.Vreau si celelate aparitii "la" ,cum fac asta?

Edited by CodexVinci, 27 May 2015 - 18:21.


#4
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,440
  • Înscris: 10.08.2005
Ce este o silaba in comparatie cu un cuvant?

#5
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostCodexVinci, on 27 mai 2015 - 17:12, said:

Problema este ca nu stiu cum pot sa iau nu numai prima aparitie a silabei citite ci si restul.Ma gandeam ca dupa ce se face contorizarea a primei aparitii, p-ul nu ar trebui sa mai ia o data aceeasi adresa.Ca si la vector,sa incerce sa contoriseze aparitia si dupa sa verifice celelalte caractere.
Multumesc.
Pentru a despărți corect în silabe, trebuie să ai o bază de date cu despărțirile în silabe ale tuturor cuvintelor.

Dar ceea ce poți face e să numeri aparițiile unui substring.

Va da rezultate greșite pentru unele cuvinte. Exemplu a-dul-me-ca, silaba a.

#6
CodexVinci

CodexVinci

    New Member

  • Grup: Junior Members
  • Posts: 15
  • Înscris: 27.05.2015
Ca sa inteleg mai bine, as vrea totusi sa am o metoda prin care pot gasesc numarul de apartii al subsirului in text.

#7
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostCodexVinci, on 28 mai 2015 - 15:53, said:

Ca sa inteleg mai bine, as vrea totusi sa am o metoda prin care pot gasesc numarul de apartii al subsirului in text.
Așa cum faci deja, doar că într-o buclă, până îți dă NULL.

Și la fiecare iterație avansezi pointerul către string cu lungimea silabei.

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate