Portal SAMP
[Pedido] Ajuda em verificação de espaço e substituir - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Pedido] Ajuda em verificação de espaço e substituir (/showthread.php?tid=3493)



Ajuda em verificação de espaço e substituir - Laura Clout - 01/04/2023

Alguém me ajuda com esse código? deveria estar substituindo o espaço por _, porém acaba substituindo todos os caracteres, já tentei de tudo e não funcionou, obrigado!!

stock SendClientMessagem(playerid, Aviso[])
{
for(new i; i < 80; i++)
{
if(strfind(Aviso[i], " ", true) != -1)
{
Aviso[i] = '_';
}
}

printf("%s", Aviso[i]);


RE: Ajuda em verificação de espaço e substituir - Vel - 01/04/2023

Código:
SendClientMessagem(playerid, Aviso[144]) {
  for (new i, length = strlen(Aviso); i < length; i++) {
    Aviso[i] = Aviso[i] == ' ' ? '_' : Aviso[i];
  }
  return Aviso;
}

main() {
  print(SendClientMessagem(0, "The quick brown fox jumps over the lazy dog"));
  // The_quick_brown_fox_jumps_over_the_lazy_dog
}



RE: Ajuda em verificação de espaço e substituir - White_Blue - 02/04/2023

(01/04/2023 22:01)Vel Escreveu:
Código:
SendClientMessagem(playerid, Aviso[144]) {
  for (new i, length = strlen(Aviso); i < length; i++) {
    Aviso[i] = Aviso[i] == ' ' ? '_' : Aviso[i];
  }
  return Aviso;
}

main() {
  print(SendClientMessagem(0, "The quick brown fox jumps over the lazy dog"));
  // The_quick_brown_fox_jumps_over_the_lazy_dog
}

Apenas alguns complementos:

Não tem necessidade de colocar o parâmetro playerid na função SendClientMessagem já que você não está usando e também não precisa especificar o tamanho da string na função. De resto, a função funciona corretamente.

Código PHP:
SendClientMessagem(Aviso[]) {
  for (new ilength strlen(Aviso); lengthi++) {
    Aviso[i] = Aviso[i] == ' ' '_' Aviso[i]; // Verifica que há um espaço vazio('  ') que no caso é representado por 2 aspas simples com um espaço vazio entre elas se retornar positivo, substitui o espaço vazio por um sublinhado(_), simples assim.
  }
  return Aviso;
}

main() {
  print(SendClientMessagem("The quick brown fox jumps over the lazy dog")); // Resultado no console: The_quick_brown_fox_jumps_over_the_lazy_dog




RE: Ajuda em verificação de espaço e substituir - Vel - 02/04/2023

(02/04/2023 06:41)White_Blue Escreveu:
(01/04/2023 22:01)Vel Escreveu:
Código:
SendClientMessagem(playerid, Aviso[144]) {
  for (new i, length = strlen(Aviso); i < length; i++) {
    Aviso[i] = Aviso[i] == ' ' ? '_' : Aviso[i];
  }
  return Aviso;
}

main() {
  print(SendClientMessagem(0, "The quick brown fox jumps over the lazy dog"));
  // The_quick_brown_fox_jumps_over_the_lazy_dog
}

Apenas alguns complementos:

Não tem necessidade de colocar o parâmetro playerid na função SendClientMessagem já que você não está usando e também não precisa especificar o tamanho da string na função. De resto, a função funciona corretamente.

Código PHP:
SendClientMessagem(Aviso[]) {
  for (new ilength strlen(Aviso); lengthi++) {
    Aviso[i] = Aviso[i] == ' ' '_' Aviso[i]; // Verifica que há um espaço vazio('  ') que no caso é representado por 2 aspas simples com um espaço vazio entre elas se retornar positivo, substitui o espaço vazio por um sublinhado(_), simples assim.
  }
  return Aviso;
}

main() {
  print(SendClientMessagem("The quick brown fox jumps over the lazy dog")); // Resultado no console: The_quick_brown_fox_jumps_over_the_lazy_dog


É necessário definir o comprimento da string, caso contrário o compilador retornará um erro, pois estará retornando uma string de comprimento desconhecido, e pelo nome da função, entende-se que sim, a pessoa pretende utilizar o parâmetro playerid.

Código:
error 092: functions may not return arrays of unknown size