Basta apenas verificar se para cada palavra, a palavra tem tamanho 3 e se ela começa com uma das duas substrings apresentadas no enunciado para ser corrigida de acordo. Algumas linguagens têm suporte a ver se uma string começa com outra substring, mas para esse caso é bem tranquilo fazer manualmente também.
C99 C++17 JavaScript 12.18 Python 3.9
Copy #include <string.h>
#include <stdio.h>
int main(){
int N;
char palavra[21];
scanf("%d\n", &N);
for(int i = 0; i < N; ++i){
scanf("%s", &palavra);
if(i) printf(" ");
if(strlen(palavra) == 3){
if(palavra[0] == 'O' && palavra[1] == 'B')
printf("OBI");
else if(palavra[0] == 'U' && palavra[1] == 'R')
printf("URI");
else
printf("%s", palavra);
}else{
printf("%s", palavra);
}
}
printf("\n");
return 0;
}
Copy #include <iostream>
using namespace std;
int main(){
int N;
string palavra;
cin >> N;
for(int i = 0; i < N; ++i){
cin >> palavra;
if(i) cout << ' ';
if(palavra.length() == 3){
if(palavra[0] == 'O' && palavra[1] == 'B')
cout << "OBI";
else if(palavra[0] == 'U' && palavra[1] == 'R')
cout << "URI";
else
cout << palavra;
}else{
cout << palavra;
}
}
cout << endl;
return 0;
}
Copy var input = require('fs').readFileSync('/dev/stdin', 'utf8');
var lines = input.split('\n');
let N = parseInt(lines.shift());
let palavras = lines.shift().trim().split(" ");
palavras = palavras.map((x) => {
if(x.length === 3){
if(x.startsWith("OB")) return "OBI";
else if(x.startsWith("UR")) return "URI";
}
return x;
});
console.log(palavras.join(' '));
Copy N = int(input())
palavras = input().strip().split(' ')
resposta = []
for palavra in palavras:
if(len(palavra) == 3):
if(palavra.startswith("OB")):
resposta.append("OBI")
elif(palavra.startswith("UR")):
resposta.append("URI")
else:
resposta.append(palavra)
else:
resposta.append(palavra)
print(' '.join(resposta))