Commit 8c347b60 by Jürgen Hein

Upload New File

parent c956b2fd
Showing with 133 additions and 0 deletions
/* Kodutöö 2. Variant 3.
/* Kodutöö 2. Variant 3.
Sisestatakse tekstirida (kuni 25 sümbolit) ja
sümbolid c1 ja c2.
Moodustatakse tekstirida T, mis on moodustunud S sümbolitest ja
vahemikus c1 kuni c2. Kuvatakse tekstirida ja pikkus l.
*/
#include <stdio.h>
#include <string.h> //lubab kasutada strlen käsku
#include <ctype.h> //lubab kasutada isprint käsku
//Prototüübid
void SisestusS(char[]);
char SisestusC1();
char SisestusC2();
void AlgneVäljastus(char, char, char[]);
void TekstiridaT(char, char, char[], char[]);
int ReaPikkus(char[]);
void Väljastus(char[], int);
int main(void)
{
char S[25];
char T[25];
SisestusS(S);
char c1 = SisestusC1();
char c2 = SisestusC2();
AlgneVäljastus(c1, c2, S);
TekstiridaT(c1, c2, T, S);
int l = ReaPikkus(T);
Väljastus(T, l);
return 0;
}
//Sisestus
void SisestusS(char S[])
{
int k = 25; //maksimaalne tähemärkide arv
do{
printf("Sisestada tekstirida S\n");
scanf("%s", S);
if(strlen(S) >= k) //kontroll, kas massiivis vähem kui 25 märki
{
printf("Tekstirida peab olema vähem kui 25 tähemärgiga.\n");
}
}while(strlen(S) > k);
}
char SisestusC1()
{
char c1;
do
{
printf("Sisestada tekstirida T esimene tähemärk.");
scanf(" %c", &c1);
if(isprint(c1) == 0) //Kontroll, kas c1 on sobiv tähemärk
{
printf("Sisestatud tähemärk ei sobi. Sisestage uus tähemärk\n");
}
}while(isprint(c1) == 0);
return c1;
}
char SisestusC2()
{
char c2;
do
{
printf("Sisestada tekstirida T viimane tähemärk.");
scanf(" %c", &c2);
if(isprint(c2) == 0) //Kontroll, kas on tähemärk
{
printf("Sisestatud tähemärk ei sobi. Sisestage uus tähemärk\n");
}
}while(isprint(c2) == 0);
return c2;
}
void AlgneVäljastus(char c1, char c2, char S[])
{
printf("\nEsimene tähemärk on %c\n", c1);
printf("Viimane tähemärk on %c\n", c2);
printf("Algne täherida on: %s\n", S);
}
//Töötlus
void TekstiridaT(char c1, char c2, char T[], char S[])
{
int i;
int TKontroll=0; //Muutuja, mis näitab, kas ollakse vahemikus 'c1'...'c2'
int j=0; //T massiivi järjenumber
for(i=0; i < strlen(S); i++)
{
if(S[i] == c1)
{
TKontroll = 1;
}
switch(TKontroll)
{
case 0:
break;
case 1:
T[j]=S[i];
j++;
break;
}
if (S[i] == c2)
{
TKontroll = 0;
}
}
T[j] = '\0'; //T massiivi lõpetamine, et viimaseks elemendiks ei jääks tühik
}
int ReaPikkus(char T[])
{
int l;
l = strlen(T);
return l;
}
//Väljastus
void Väljastus(char T[], int l)
{
printf("Uus tekstirida on:\n");
printf("%s",T);
printf("\nTekstirea pikkus on: %d", l);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment