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

[C++]maly programik...
Rozpoczęty przez
sancho1
, 03 01 2009 23:37
1 odpowiedź w tym temacie
#1
Napisano 03 01 2009 - 23:37
#2
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:
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 }
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych