Skocz do zawartości


Zdjęcie

[C++]maly programik...


  • Zamknięty Temat jest zamknięty
1 odpowiedź w tym temacie

#1 sancho1

sancho1

    Nowy

  • 1 postów

Napisano 03 01 2009 - 23:37

Witam, jako, ze jestem poczatkujacym w programowaniu, chcialem spytac czy ktos moze moglby mi pomoc...potrzebuje program ktory zlicza liczbe wyrazow, liter i cyfr we wprowadzonym tekscie. czy ktos pomoze? z gory dziekuje
pozdrawiam

  • 0

#2 Kai

Kai

    Stały użytkownik

  • 237 postów

Napisano 04 01 2009 - 19:53

A co już masz? Pewnie nic. Bo liczysz na to, że ktoś to zrobi za Ciebie.

Wyrazy możesz policzyć tworząc funkcję w stylu PHPowskiego explode(). A zrobisz to np. operując na wektorach (vector). Przykład:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <vector>
#include <string>

using namespace std;

void explode(string str, string separator, vector<string>* results){
	short int found;
	found = str.find_first_of(separator, 0); // wyraz do pierwszego wystapienia separatora

	while (found != string::npos) // wyszukuj do momentu, gdy nie bedzie mozna juz znalezc separatora
	{
		if (found > 0)
		{
			results->push_back(str.substr(0, found)); // dodanie nastepnego elementu do tablicy wektorowej
		}
		str = str.substr(found + 1); // usuniecie elementu z rozbijanego ciagu
		found = str.find_first_of(separator, 0); // znalezienie kolejnego wystapienia separatora
	}
	if (str.length() > 0) // jezeli rozbijany ciag nie zawiera separatora
	{
		results->push_back(str); // dodanie calego ciagu do pierwszego elementu tablicy
	}
}

int main(int argc, char *argv[])
{
	vector<string> exploded;
	string operative_string;
	char temporary_char[255]; // dlugosc wczytywanego bufora znakow

	cin.getline(temporary_char, sizeof(temporary_char)); // pobranie calej linii wraz z spacjami
	operative_string = temporary_char;

	explode(operative_string, " ", &exploded); // rozbicie ciagu na tablice [ciag, separator, zwrocona referencja]

	cout << "Elementow: " << exploded.size(); // zwrocenie ilosci elementow tablicy wektorowej
	return 0;
}
Co do cyfr i liter, sprawa też jest stosunkowo prosta. Wczytujesz ciąg znaków do stringa, po czym w pętli przelatujesz po każdym znaku sprawdzając warunkiem, czy jest on literą, czy cyfrą. Długość zmiennej typu string możesz sprawdzić poprzez str.length();.
for (int i = 0; i <= string.length(); ++i)
{
	// warunki
}


  • 0

Zobacz więcej tematów z tagiem: język C++



Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych