Portal SAMP
[Ajuda] Problema deveras estranho - 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: [Ajuda] Problema deveras estranho (/showthread.php?tid=2963)



Problema deveras estranho - manow6523 - 04/11/2022

Olá, estou tentando obter um caractere em uma posição específica da string, utilizando a função strgetc da include strlib (https://github.com/oscar-broman/strlib), porém o resultado apresenta diferença no Gamemode e em Filterscript, exemplo:

No gamemode: 

Código:
printf("test %s", strgetc("Ao contrário do que se acredita, Lorem Ipsum não é simplesmente um texto randômico", 11));

Saída: oa

Em um filterscript:

Código:
printf("test %s", strgetc("Ao contrário do que se acredita, Lorem Ipsum não é simplesmente um texto randômico", 11));

Saída: o


Ou seja, quando usada no GM, a função retorna o caractere esperado, porém sempre com um caractere a mais posteriormente, que é o 'a', já no FS, o retorno é o esperado. O que pode ser?


RE: Problema deveras estranho - João Pedro Alves - 04/11/2022

O encoding dos arquivos do GM e FS é o mesmo?


RE: Problema deveras estranho - manow6523 - 04/11/2022

(04/11/2022 13:34)N0n Escreveu: O encoding dos arquivos do GM e FS é o mesmo?

Sim, tudo está em: Western (Windows 1252).


RE: Problema deveras estranho - João Pedro Alves - 04/11/2022

Já tentou com strings sem acentução para ver se o comportamento persiste?


RE: Problema deveras estranho - manow6523 - 04/11/2022

(04/11/2022 13:53)N0n Escreveu: Já tentou com strings sem acentução para ver se o comportamento persiste?

Sim, persiste:

Código:
printf("test %s", strgetc("Lorem Ipsum is simply dummy text of the printing and typesetting industry", 3));
saida: ea

Parece haver alguma espécie de conflito, vazamento de memória quando no GM ou sei lá, mas não estou conseguindo descobrir exatamente o que é.


RE: Problema deveras estranho - Maycon_Felipe - 04/11/2022

Realmente tem um problema, mas se vc só for mostrar a letra, ou comparar ainda funciona normal!!

Caso for mostrar: utilize '%c'.

printf("%c", strgetc("eae mano", 5));