Předmět Autor Datum
Zdar. Počet slov zjistíš tak, že projdeš celý řetězec písmeno po písmenu a spočítáš počet mezer. Poč…
Flash_Gordon 08.05.2012 11:14
Flash_Gordon
děkuji moc ;)
Lucka19 08.05.2012 11:43
Lucka19
to neni az tak uplne spravne ptz ak budu 2mezery po sebe tak budes ratat blbost. SPravne sa to robi…
MM.. 08.05.2012 11:45
MM..
Mě to stačí takhle, protože v zadání je: "předpokládáme, že slova ve větě jsou oddělena jedinou meze…
Lucka19 08.05.2012 12:10
Lucka19
Jedno z možných (kompletních) řešení: #include "stdafx.h" #include <stdio.h> #include <ctype.h> int…
Flash_Gordon 08.05.2012 12:33
Flash_Gordon
Ešte čiarka, bodkočiarka, bodka, pomlčka, atď. Ale som hnusný, čo? poslední
msx. 08.05.2012 12:56
msx.

Zdar.
Počet slov zjistíš tak, že projdeš celý řetězec písmeno po písmenu a spočítáš počet mezer.
Počet slov potom bude počet mezer+1.

Co se týče "zvětšení" písmena, v C++ na to existuje fce toupper v knihovně.

Jinak zvětšení lze dosáhnout i odečtením přes ASCII určité hodnoty (v čistém C bez knihovny).

Spočítání mezer:

#include "stdafx.h"
#include<stdio.h>


int main()
{
	char string[100];
   int c = 0;
   int pocetMezer = 0;
 
   printf("Vlozte svuj text s mezerama (max 99 znaku) \n");
   gets(string);
 
   while ( string[c] != '\0' )
   {
      
 
      if ( string[c] == ' ' ) 
         pocetMezer++;
 
      c++;
   }
   printf("\nPocet mezer: %d", pocetMezer);
    
     
	 gets(string); // pauznuti
	return 0;
}


to neni az tak uplne spravne ptz ak budu 2mezery po sebe tak budes ratat blbost. SPravne sa to robi tak ze si drzis stav (SomNaMezerach) a zvysujes len vtedy ak je prechod mezera->nemezera. Neni to o moc komplikovanejsie.

K tej dalsej otazke: pismeno na velke sa v C da menit pomocou toupper, t.j. string[c] = toupper(string[c]);

Jedno z možných (kompletních) řešení:

#include "stdafx.h"
#include <stdio.h>
#include <ctype.h>

int main()
{
	char string[100];
   int c = 0;
   int pocetMezer = 0;
 
   printf("Vlozte svuj text s mezerama (max 99 znaku) \n");
   gets(string);
  
   string[0] = toupper(string[0]);  // zvetseni prvniho pismena 

   while ( string[c] != '\0' )
   {
      
 
      if ( string[c] == ' ' ) 
	  {
         pocetMezer++;
         string[(c+1)] = toupper(string[(c+1)]);
	  }
      c++;
   }
   printf("\nPocet mezer: %d\n Pocet slov: %d \nZadana veta s velkymi pismeny slov: %s", pocetMezer, pocetMezer+1, string);
     
     
	 gets(string); // pauznuti
	return 0;
}

Zpět do poradny Odpovědět na původní otázku Nahoru