Svuda dođi

Autor zadatka: Aleksandar Vasiljević <alexva02@uns.ac.rs>

Napisati program koji na osnovu ulaznog stringa A formirati izlazni string B sačinjen od prve i poslednje reči ulaznog stringa A. Prilikom unosa ulaznog stringa A voditi računa o maksimalnoj dozvoljenoj dužini koja iznosi 22 karaktera. Izlazni string B treba da se sastoji isključivo od velikih slova (konverziju raditi samo nad slovima):

Unesite zeljeni string (max duzine 22): Svuda podji, kuci dodji

Očekivani izlaz na ekranu je:

SVUDA DODJI

Očekivani izlaz na ekranu ukoliko se za vrednost string A unetog preko standardnog ulaza „Svuda“ je sledeći:

SVUDA SVUDA

Primer rešenja

 1#include <stdio.h>
 2#include <string.h>
 3
 4#define MAX_STRING 22+1
 5
 6int main()
 7{
 8    char str[MAX_STRING],prvi[MAX_STRING],poslednji[MAX_STRING];
 9    int n,i,indPrvi=0,indPoslednji=0;
10
11    do
12    {
13        printf("Unesite zeljeni string (max duzine %d):",MAX_STRING-1);
14        gets(str);
15    } while(strlen(str)<=0 || strlen(str)>MAX_STRING);
16
17    for(i=0;i<strlen(str);i++)
18    {
19        if(str[i]==' ')
20        {
21            break;
22        }else
23        {
24            if(str[i]>='a' && str[i]<='z')
25                prvi[indPrvi] = str[i]-32;
26            else
27                prvi[indPrvi] = str[i];
28
29            indPrvi++;
30        }
31    }
32    prvi[indPrvi]='\0';
33    
34    int index;
35    for(i=strlen(str);i>=0;i--)
36    {
37        if(str[i]==' ')
38        {
39            index = ++i;
40            break;      
41        }
42    }
43
44    for(i=index;i<strlen(str);i++)
45    {
46        if(str[i]>='a' && str[i]<='z')
47            poslednji[indPoslednji] = str[i]-32;
48        else
49            poslednji[indPoslednji] = str[i];
50        
51        indPoslednji++;                 
52    }
53    poslednji[indPoslednji] = '\0';
54
55    strcat(prvi," ");
56    puts(strcat(prvi,poslednji));
57    
58    return 0;
59}
60