Wpisanie tekstu w konsoli i wyświetlenie ilości znaków tego tekstu

0

Kobieto, trochę własnej inwencji. Wystarczy wklepać w google std isspace i wszystko masz wytłumaczone.

0

A po co chcesz go napisać inaczej?
Można tak:

if (!(!( std::isspace( chr ) ) ) )
words=words+1;
0
Oko Moskwy napisał(a):

Tutaj nie potrzebujesz znać indeksów poszczególnych liter, więc można użyć prostszej pętli.

#include <iostream>
#include <string>
#include <cctype>

int main( int argc, char** argv )
{
  std::cout << "Wpisz tekst: ";
  std::string text;
  std::getline( std::cin, text );
  int words = ( text.length() ? 1 : 0 );
  for( char chr : text )
  {
    if ( std::isspace( chr ) ) 
      ++words;
  }
  std::cout << "Liczba wyrazow: " << words << "\n";
  return 0;
}

Chciałam twój kod napisać trochę inaczej bardziej zrozumiale dla mnie, ale stanęłam na for możesz mi pomóc?

 cout << "Podaj tekst " << endl;
		string wyraz;
		getline(cin, wyraz);
		int słowo;
		if (wyraz.length())
			słowo = 1;
		else
			słowo = 0;
		for
		cout << "Ilość wyrazów wynosi " << słowo << endl;
	}
0

Proszę o opisanie działania kodu for (int i = 0; i < length; i++).

0
kzkzg napisał(a):

https://api.4programmers.net/C/For

Nie o to mi chodziło. Proszę mi opisać co robi program w kodzie for (int i = 0; i < length; i++).

0

Ja chce mieć opisane dokładnie słowo po słowie co robi program w kodzie for (int i = 0; i < length; i++). Tam nie wszystko jest opisane np co robi program w kodzie for (int i = 0; .... Poza tym tam jest inny program napisany i co innego będzie opisywał. Nadal nie wiem co robi program w tym kodzie for (int i = 0; i < length; i++).

0

Daj sobie spokój z tymi studiami, nic z tego nie będzie. Marnujesz tylko czas swój i innych.

0

Nadal nie wiem co robi program w tym kodzie (int i = 0; i < text.length; i++)

Iteruje po tabliy znaków (jaką jest text) element po elemencie, aż do osiągnięcia końca tej tablicy (końca tablicy text).
Więcej nie da się wytłumaczyć. Musisz ogarnąć (przeczytać podesłane materiały) składnię i działanie pętli for.
Ineczej

0

Chce napisać taki program:
Program podaje komunikat Podaj tekst.
Ja w konsoli wpisuje tekst
Program podaje ilość zdań w konsoli.
Niestety nie znam kodu odpowiedzialnego za zliczanie zdań. Możecie mi podpowiedzieć?
Proszę o pomoc.

0

To już zagadnienie na osobny temat, ale odpowiem.
Pobierania zdań zrealizujesz funkcją std::getline w pętli.
Przed pętlą zdefiniuj jakąś zmienną reprezentującą licznik wprowadzonych zdań (czyli licznik powtórzeń pętli).
Na koniec po opuszczeniu pętli wypisujesz wartość tej zmiennej na wyjście konsoli.

0
YooSy napisał(a):

To już zagadnienie na osobny temat, ale odpowiem.
Pobierania zdań zrealizujesz funkcją std::getline w pętli.
Przed pętlą zdefiniuj jakąś zmienną reprezentującą licznik wprowadzonych zdań (czyli licznik powtórzeń pętli).
Na koniec po opuszczeniu pętli wypisujesz wartość tej zmiennej na wyjście konsoli.

Jak utworzyć zmienną to wiem, ale żeby reprezentowała licznik wprowadzonych zdań już nie.

0

ale żeby reprezentowała licznik wprowadzonych zdań już nie

unsigned licznik = 0;
while(wprowadzasz zdanie){
   inkrementujesz zmienną licznik
} 
wypisujesz zmienną licznik
0
YooSy napisał(a):

ale żeby reprezentowała licznik wprowadzonych zdań już nie

unsigned licznik = 0;
while(wprowadzasz zdanie){
   inkrementujesz zmienną licznik
} 
wypisujesz zmienną licznik

Nie o to mi chodziło. Program ma liczyć ilość zdań w tekście, które napisze w konsoli.

0

Nie o to mi chodziło.

O to.

Jak utworzyć zmienną to wiem, ale żeby reprezentowała licznik wprowadzonych zdań już nie.

Masz tam zmienną licznik. W pętli pobierasz zdania i zwiększasz wartość zmiennej licznik po pobraniu każdego zdania.
Jeśli chcesz mieć wprowadzony cały tekst (kilka zdań), musisz w pętli szukać znaku . i wtedy inkrementować licznik.

1 użytkowników online, w tym zalogowanych: 0, gości: 1