String com parte de outra O.o -
Dayvison_ - 16.09.2015
Bom eu preciso fazer algo que serб como no exemplo, porйm ocorre me erros entгo fiz um DEBUG, alguem tem uma idйia do que pode ser?
PHP код:
main()
{
teste("", "");
}
forward teste(str1[], str2[]);
public teste(str1[], str2[])
{
strcpy(str1, "STRING1", 10);
strcpy(str2, "STRING2", 10);
print(str1);
print(str2);
}
strcpy(dest[], source[], size=sizeof(dest))
{
dest[0] = '\0';
strcat(dest, source, size);
}
No console aparece:
Код:
[20:13:20] SSTRING2
[20:13:20] STRING2
Quando deveria aparecer: '-'
Код:
[20:13:20] STRING1
[20:13:20] STRING2
Re: String com parte de outra O.o -
Nixtren - 17.09.2015
Que coisa mais bizarra. Fiquei aqui a investigar mas nгo cheguei a nenhuma conclusгo. Aconselho vocк postar isso na бrea inglкsa se nгo obtiver nenhuma resposta aqui.
Re: String com parte de outra O.o -
[BOPE]Seu._.Madruga - 17.09.2015
Algo Fбcil Porйm pouco discutido na Board!
PHP код:
#include <a_samp>
main()
{
teste("", "");
}
new Parte[2][23];
stock teste(strfind[], strfoulder[])
{
format(Parte[0], 23, "Leonardo", strfind);
print(Parte[0]);
format(Parte[1], 23, "Bradoks", strfoulder);
print(Parte[1]);
return 1;
}
Re: String com parte de outra O.o -
PT - 17.09.2015
Nгo use format para isso tem o strmid e o memcpy
Mas o seu problema deve ter nesse 10 aн no fim retire ele nгo precisa desse parвmetro visto que ele o obtйm automaticamente
Re: String com parte de outra O.o -
Dayvison_ - 17.09.2015
Quote:
Originally Posted by PT
Nгo use format para isso tem o strmid e o memcpy
Mas o seu problema deve ter nesse 10 aн no fim retire ele nгo precisa desse parвmetro visto que ele o obtйm automaticamente
|
Acho q memcpy e strmid nгo terб grande ultilidade p.p
Nгo o 10 йo tamanho mбximo da string, pois se eu nгo adicionar ele irб resultar um warning dizendo que o tamanho da string nгo foi determinado, pois usei sizeof em uma matriz sem numero de celulas prй definidos.
Mesmo assim descobri que o erro deve-se ao fato de que eu passo uma string prй definida para a funзгo assim ela nгo pode receber valores, e no caso o certo seria:
PHP код:
main()
{
new str1[10], str2[10];
teste(str1, str2);
}
forward teste(str1[], str2[]);
public teste(str1[], str2[])
{
strcpy(str1, "STRING1", 10);
strcpy(str2, "STRING2", 10);
print(str1);
print(str2);
}
strcpy(dest[], source[], size=sizeof(dest))
{
dest[0] = '\0';
strcat(dest, source, size);
}
Aos outros obrigado
Re: String com parte de outra O.o -
[BOPE]Seu._.Madruga - 17.09.2015
Quote:
Originally Posted by PT
Nгo use format para isso tem o strmid e o memcpy
Mas o seu problema deve ter nesse 10 aн no fim retire ele nгo precisa desse parвmetro visto que ele o obtйm automaticamente
|
Porque nгo usar? e oque vocк disse sobre obter o valor automaticamente estб errado! Atualize suas includes.
A forma ideal de fazer oque ele estб querendo й utilizando a format pois nгo da erros e funciona perfeitamente, e outra coisa percebi que apenas eu trouxe uma soluзгo funcional para ele ao contrбrio de outros que sу visualizaram.
Re: String com parte de outra O.o -
PT - 17.09.2015
Quote:
Originally Posted by [BOPE]Seu._.Madruga
Porque nгo usar? e oque vocк disse sobre obter o valor automaticamente estб errado! Atualize suas includes.
A forma ideal de fazer oque ele estб querendo й utilizando a format pois nгo da erros e funciona perfeitamente, e outra coisa percebi que apenas eu trouxe uma soluзгo funcional para ele ao contrбrio de outros que sу visualizaram.
|
Format й lento para copiar strings.
O propуsito para que foi feito e para formatar nгo copiar.
Atualizar que includes? Ta doente?
Os mйtodos que falei acima sгo mais rбpidos que format para copiar strings
Re: String com parte de outra O.o -
Dayvison_ - 17.09.2015
Quote:
A lot of people tend to copy strings like this:
PHP код:
format(dest, sizeof (dest), "%s", src);
This is one of the worst ways to do it! I did timings on six different methods of copying strings, in all cases "b" is the destination and "a" is the source. "strcpy" is a hand written PAWN function to copy strings:
PHP код:
strmid(b, a, 0, strlen(a), sizeof (b));
format(b, sizeof (b), "%s", a);
b[0] = '\0';
strcat(b, a, sizeof (b));
memcpy(b, a, 0, strlen(a) * 4 + 4, sizeof (b)); // Length in bytes, not cells.
strcpy(b, a);
b = a;
Note that "b = a;" is the standard PAWN array copy and only works for arrays known at compile time to be the same size, or with a larger desination. Unfortunately I ran a range of tests and they do not point to a single best function. What they DO do is show quite clearly that both the hand coded PAWN version and format are very slow at copying strings:
For short strings in small arrays, "b = a;" is fastest when applicable, strcat with prior NULL termination (important) is second.
For short strings in large arrays, strcat is fastest.
For longer strings in longer arrays, "b = a;" is again fastest, with memcpy second.
For huge arrays "b = a;" seems to be fastest.
Where possible use standard array assignment, however this is not always possible, for example when a string of unknown size is passed to a function. In these cases I would suggest using strcat (if you're interested, note the bizzare syntax):
PHP код:
#define strcpy(%0,%1,%2) \
strcat((%0[0] = '\0', %0), %1, %2)
Use:
PHP код:
strcpy(dest, src, sizeof (dest));
|
Nгo hб necessidade em usar format, ou mesmo atualizar includes LOL
Re: String com parte de outra O.o -
PT - 17.09.2015
Tu sу confirmou que eu tava certo nгo sei onde queres chegar agora
Re: String com parte de outra O.o -
Dayvison_ - 17.09.2015
Quote:
Originally Posted by PT
Tu sу confirmou que eu tava certo nгo sei onde queres chegar agora
|
Era em relaзгo a este post, ele insistindo em um "erro"
Quote:
Originally Posted by [BOPE]Seu._.Madruga
Porque nгo usar? e oque vocк disse sobre obter o valor automaticamente estб errado! Atualize suas includes.
A forma ideal de fazer oque ele estб querendo й utilizando a format pois nгo da erros e funciona perfeitamente, e outra coisa percebi que apenas eu trouxe uma soluзгo funcional para ele ao contrбrio de outros que sу visualizaram.
|