Pereiti prie turinio

C++ String Pagalba.


Rekomenduojami pranešimai

Sveiki, turiu uždavinį kad iš pateikto duomenų faile esančio sąrašo man reikia išrinkti miestus, kurie sudaryti iš 2 žodžių.

duomenų failo pvz:

5 // kiek miestų pav surašyta
Druskininkai
Naujoji Akmenė
Trakai
Zarasai
Kazlų Rūda

Tai rezultatų faile turėtų būt surašytą tik Kazlų ruda ir Naujoji akmenė.

Gal kas žinot kaip man išrinkti tuos miestus? Mėginau daryt su if(Getline(fd,A) == ' ') ir tada spausdint, bet metė errorą.

o dabar sėdėdamas išmąsčiau, kad galima suskaičiuot koks yra didžiausias miesto pavadinimas iš kiek simbolių susideda sukurt naują char tipo masyvą iš tiek kiek yra daugiausia raidžių ir tada kiekvieną eilutę priskirt masyvui ir tikrinti ar yra tarpo simbolis?

gal kas galit padėt? ar yra kokia funkcija string, kad sužinot ar yra tarpo simbolis?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Štai pavyzdys, čia suskaičiuoja žodžius esančius kintamajame ir parašo kiek jų yra, tai gali pagal save persidaryti kodą:

 

#include <stdio.h>
#include <string.h>
int main()
{
   char vardas[15] = "Naujoji Akmenė";
   int i, zodis=0;
   if(strlen(vardas)!=0)
   {
       i=0;
       while (i<=strlen(vardas)-2)
       {
           if ((vardas[i]==' ')&&(vardas[i+1]!=' ') && (vardas[i+1]!='/0'))
           {
               zodis++;
           }
           i++;
       }
       if (vardas[0]!=' ')
       zodis++;
       printf("%d",zodis);
   }
   zodis=0;
   return 0;
}

Redagavo DeimisT
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tiesiog iteruok per tą miesto pavadinimą ir lygink einamąjį simbolį su tarpo simboliu, jei sąlyga tenkinama, tai spausdink pavadinimą į failą (darant prielaida, kad nėra pavadinimu kuriuose daugiau nei vienas žodis), baigi ciklą ir pradėk tą patį ciklą su kitu žodžiu.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Iš esmės taip, parašysiu kaip įsivaizduoju programėlę (o šiaip, kodėl tiesiog nepratestuoji to savo varianto?):

string pavadinimai[128];
boolean yraTarpas;
for(int i = 0; i < 128; i++){
 yraTarpas = false;
 for (int j = 0; (j < pavadinimai[i].length()) && !yraTarpas; j++){
   if (pavadinimai[i][j] == ' '){
     yraTarpas = true;
   }
 }
 if (yraTarpas){
   //pavadinimo spausdinimas i faila
   yraTarpas = false;
 }
}

Taip pat rašiau iš galvos, gali būti klaidų.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>

using namespace std;

const char CDuom[] = "duomenys.txt";
const char CRez[] = "rezultatai.txt";


int main()
{
int kiek;
string miestas;
ifstream fd(CDuom);
ofstream fr(CRez);
fd >> kiek;
for ( int a = 0; a <= kiek; a++){
	getline(fd, miestas);
	for ( int i = 0; i < miestas.length(); i++){
		if ((' ' == miestas[i] && miestas[i+1] != ' ')){
			fr << miestas << endl;
		}
	}
}
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...