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: 1
0 użytkowników, 1 gości, 0 anonimowych



Temat jest zamknięty





