» »

[C++][Naloga] dolžina besed

[C++][Naloga] dolžina besed

goxy ::

LP. naloga : -KOLIKO BESED JE V PODANEM BSEDILU. PO VRSTI IZPIŠI DOLŽINE BESED.
Primer za besedilo : "TO JE PAČ NEKAJ "
Izpis : - besedilo ima 4 besede, dolžine besed so 2,2,3,5.


?
če mi lahko kdo razloži idejo al pa kodo.
z čim bi ugotobil dolžine posameznih besed. hvala vam

black ice ::

Hint: štej presledke

black ice ::

Žal ne morem več urejati prejšnjega posta.
Štej presledke, da dobiš število besed, vse kar je vmes med dvema presledkoma je (logično) dolžina posamezne besede. Poglej si še ASCII tabelo. Nalogo lahko razširiš tako, da vključiš ločila. Vendar najprej poskusi samo s presledki.

PS: Po stringu se "sprehajaš" isto kot po polju.

goxy ::

string bes;
cout << "podaj besedilo"<<endl;

getline(cin,bes);
cout << bes << " - "<<bes.length();
cout << " znakov"<<endl;



Kako bi zdaj iz tega naredo da me nebi stelo presledkov.

black ice ::

Preveriš celoten string, znak za znakom in šteješ presledke, da dobiš število besed.
for(int i=0; i<bes.length();i++)
{
   if(bes[i]==" ")
   {stevec++;}
}

Ne pozabi prej definirati spremenljivke stevec.

Zgodovina sprememb…

  • spremenilo: black ice ()

goxy ::

if(bes[i]==" ") to negre primerjat ..

amacar ::

" " zamenjaj z ' ' :)

goxy ::

int main()
{
	int i, pres;
	string bes;
	pres=1;

	cout << "Podaj poljubno besedilo"<<endl;
	getline(cin, bes);

	
	for (i=0; i<int(bes.length()); i++)
	{
	
      if(bes[i]==' ')
      {
        pres=pres+1;
      }         
	}
	cout << "Besedilo ima  " << pres<< " besed.";

	cin.ignore();
	return 0;
}

EVO to mi prešteje besede. Kako bi zdaj za posamezno besedo izpisal dolžino.
Primer - mi gre po svojo:)
----------2---3---2---5

amacar ::

Še en števec, pa šteješ znake do presledka. Recimo...
int dolzina=0;
    for (i=0; i<int(bes.length()); i++)
    {
        dolzina++;
      if(bes[i]==' ')
      {
        pres=pres+1;
        cout<<dolzina-1<<" ";
        dolzina=0;
      }         
    }
    cout<<dolzina<<" ";
    cout << "Besedilo ima  " << pres<< " besed.";
 
    cin.ignore();
    return 0;

goxy ::

aia ..se logično ..zaj ko vidiš je čist easy..samo je kurba ko se nemrem iz glave zmislit.

najlepša ti hvala(dala):)

snow ::

Kaj pa če imaš takšno besedilo:"Tale   stavek ima     po    več presledkov       med besedami   ."
? ;)
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

Zgodovina sprememb…

  • spremenilo: snow ()

black ice ::

Uporabiš funkcijo peek in ignoriraš naslednje presledke.

snow ::

Samo opozarjam na nekompletno rešitev.
"Lahko pa pride do problema tudi , če imamo pred in za ločili presledke . " ;)
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C#] Domača naloga - osnove

Oddelek: Programiranje
372499 (1716) 11tomi12
»

Štetje besed v nizu (C#)

Oddelek: Programiranje
51064 (1002) Spura
»

c# težava delo z nizi

Oddelek: Programiranje
131526 (1377) Tutankhamun
»

delo z nizi

Oddelek: Programiranje
162977 (2521) tx-z
»

Podpis

Oddelek: Slo-Tech
291530 (1025) CaqKa

Več podobnih tem