Recorrer un String?
#1
Hola que tal buenos dias, ando con una duda existencial...
Vengo de otros lenguajes donde se puede recorrer una cadena de texto o un string..

Código PHP:
new String[33]
formatex(String,charsmax(String), "mi string")

for(new 
0isizeof Stringi++){
     
client_printidprint_console"El caracter es: %s",String[i] );

El problema de eso es que sizeof String me devolveria 33, y esto desbordaria, otro problema es que
client_print(id, print_console,"%s",String[0])
no devuelve "m" que es el primer caracter...
necesito recorrer el string caracter por caracter para hacer un control de variables y no se como hacerlo, no se si me explique
Aporte(?
Discord: leo$#9073
Responder
#2
Código PHP:
public test()
{

    
#define MAX_NUM_PALABRAS 3
    #define MAX_CARACTERES_POR_PALABRA 25

    
new szMisPalabras[MAX_NUM_PALABRAS][MAX_CARACTERES_POR_PALABRA]

    
copy(szMisPalabras[0], charsmax(szMisPalabras[]), "Pera")
    
copy(szMisPalabras[1], charsmax(szMisPalabras[]), "Manzana")
    
copy(szMisPalabras[2], charsmax(szMisPalabras[]), "Mango")

    for(new 
0MAX_NUM_PALABRASi++)
    {
        
server_print("Palabra: %s"szMisPalabras[i])
    }


Responder
#3
creo que era len(texto) o strlen(texto) algo asi
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#4
Olvida lo primero, me buguie, no lo borro porque igual le serviría a alguien

En tu caso como dijo hinami se usa strlen()

Código PHP:
public test()
{

    new 
String[33]
    
formatex(String,charsmax(String), "mi string")

    for(new 
0strlen(String); i++){
        
server_print("El caracter es: %c"String[i])
    }



Para mostrar caracteres, en vez de %s, se usa %c

Output:
Código:
El caracter es: m
El caracter es: i
El caracter es:
El caracter es: s
El caracter es: t
El caracter es: r
El caracter es: i
El caracter es: n
El caracter es: g
Responder
#5
(05/09/2022, 11:27 AM)[N]drs escribió:
Código PHP:
public test()
{

    
#define MAX_NUM_PALABRAS 3
    #define MAX_CARACTERES_POR_PALABRA 25

    
new szMisPalabras[MAX_NUM_PALABRAS][MAX_CARACTERES_POR_PALABRA]

    
copy(szMisPalabras[0], charsmax(szMisPalabras[]), "Pera")
    
copy(szMisPalabras[1], charsmax(szMisPalabras[]), "Manzana")
    
copy(szMisPalabras[2], charsmax(szMisPalabras[]), "Mango")

    for(new 
0MAX_NUM_PALABRASi++)
    {
        
server_print("Palabra: %s"szMisPalabras[i])
    }



si quisiera guardar el dato de una variable?
Código PHP:
new g_variable[33][MAX_NUM_PALABRAS]
for(new 
0MAX_NUM_PALABRASi++)
{
 
copy(szMisPalabras[i], charsmax(szMisPalabras[]), "%d",g_variable[id][i])

Eso me da error  Cutecry
Aporte(?
Discord: leo$#9073
Responder
#6
(05/09/2022, 11:54 AM)aramayo123 escribió: si quisiera guardar el dato de una variable?
Código PHP:
new g_variable[33][MAX_NUM_PALABRAS]
for(new 
0MAX_NUM_PALABRASi++)
{
 
copy(szMisPalabras[i], charsmax(szMisPalabras[]), "%d",g_variable[id][i])

Eso me da error  Cutecry

Código PHP:
#include <amxmodx>

#define PLUGIN  "[TUT] Recorrer palabras y mostrarlas"
#define VERSION "1.0"
#define AUTHOR  "[N]drs"

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)

    
test(15)
}

public 
test(id)
{

    
#define MAX_NUM_PALABRAS 3
    #define MAX_CARACTERES_POR_PALABRA 25

    
new g_variable[33][MAX_NUM_PALABRAS][MAX_CARACTERES_POR_PALABRA]

    
// Cargar palabras al jugador
    
copy(g_variable[id][0], charsmax(g_variable[][]), "Pera")
    
copy(g_variable[id][1], charsmax(g_variable[][]), "Fresa")
    
copy(g_variable[id][2], charsmax(g_variable[][]), "Naranja")

    
// Guardar palabras en una nueva varible
    
new szMisPalabras[MAX_NUM_PALABRAS][MAX_CARACTERES_POR_PALABRA]

    for(new 
0MAX_NUM_PALABRASi++)
    {
        
formatex(szMisPalabras[i], charsmax(szMisPalabras[]), "%s"g_variable[id][i])
    }

    
// Printear variable
    
for(new 0MAX_NUM_PALABRASi++)
    {
        
server_print("Palabra: %s"szMisPalabras[i])
    }


Responder
#7
(05/09/2022, 11:48 AM)[N]drs escribió: Olvida lo primero, me buguie, no lo borro porque igual le serviría a alguien

En tu caso como dijo hinami se usa strlen()

Código PHP:
public test()
{

    new 
String[33]
    
formatex(String,charsmax(String), "mi string")

    for(new 
0strlen(String); i++){
        
server_print("El caracter es: %c"String[i])
    }



Para mostrar caracteres, en vez de %s, se usa %c

Output:
Código:
El caracter es: m
El caracter es: i
El caracter es:
El caracter es: s
El caracter es: t
El caracter es: r
El caracter es: i
El caracter es: n
El caracter es: g
No habia visto esto perdon, mil gracias, esto era lo que buscaba
Aporte(?
Discord: leo$#9073
Responder
#8
Whatever
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)