Informatică, întrebare adresată de edyedy25, 8 ani în urmă

Problema:


Se da un sir de caractere reprezentând o propozitie formata din litere mici ale alfabetului englez si spatii.



Cerinta


Transformati sirul dat astfel încât prima si ultima litera a fiecarui cuvânt sa fie înlocuite cu litera mare corespunzatoare.



Date de intrare


Programul citeste de la tastatura propozitia data.



Date de iesire


Programul afiseaza pe ecran propozitia transformata.



Restrictii si precizari


sirul de caractere citit contine cel mult 255 de caractere




....................


Asa am rezolvat eu . Imi da corect , nu inteleg de ce ultimul caracter se face automat litera mare .Dupa ultimul caracter nu este NULL ?



......................


#include


#include


using namespace std ;


int main ()


{int n,i;


char s[256];


cin.getline(s,256);



for(i=0;i ='a'&&s[i]<='z')


{



if(strchr(" ",s[i+1])!=NULL)


{


s[i]=s[i]-32;


}


if(strchr(" ",s[i-1])!=NULL)


{


s[i]=s[i]-32;


}


}


}



c o u t < < s;
}

Răspunsuri la întrebare

Răspuns de Sergetec
0

Salut!

Ai rezolvarea problemei in limbajul C++ mai jos

#include <iostream>

#include <cstring>

using namespace std;

int main()

{

 int n, i = 0;

 char s[256];

 cin.getline(s, 256);

 s[i] -= 32; //prima din sir

 for (i = 1; s[i + 1] != '\0'; ++i)

 {

   if (s[i] == ' ' && s[i + 1] != ' ') //prima litera

   {

     s[i + 1] -= 32;

   }

   if (s[i] == ' ' && s[i - 1] != ' ') //ultima litera

   {

     s[i - 1] -= 32;

   }

 }

 s[i] -= 32; //ultima din sir

 cout << s;

 return 0;

}

Alte întrebări interesante