Concatenación de caracteres.
Necesito concatenar dos caracteres y enviarlos como argumento a una función, pero strcat desplaza los caracteres concatenados al primer carácter. Necesito un método que devuelva los caracteres concatenados. ¿O si puedo hacerlo de otra manera, cómo puedo hacerlo?
void abca(char *a)
{
Serial.println(a);
}
void setup()
{
Serial.begin(9600);
char *bb = "1";
char *aa = "2";
abca(strcat(aa, bb));
}
Editar: Estoy creando un programa para Arduino y no puedo usar strings. Los strings utilizan mucha memoria. Desafortunadamente, Arduino solo tiene 2kB.
davy.ai
Para concatenar dos caracteres y enviarlos como argumento a una función sin utilizar la función strcat, se puede utilizar el operador de concatenación de cadenas “+” en C++. Esto creará una nueva cadena y la devolverá como resultado concatenado. Aquí hay un ejemplo:
Primero, necesitará crear una nueva matriz de caracteres lo suficientemente grande como para contener ambas cadenas que desea concatenar más un terminador nulo. Luego, puede utilizar la función strcpy para copiar la primera cadena en la nueva matriz y la función strcat para agregar la segunda cadena. Finalmente, puede pasar el resultado concatenado como argumento a su función.
Tenga en cuenta que este método puede causar problemas de gestión de memoria si no se implementa correctamente, especialmente si se utiliza la misma matriz una y otra vez. Asegúrese de liberar la memoria una vez que ya no sea necesaria.
En el ejemplo anterior, usamos
new
para asignar memoria, por lo que debemosdelete
al final desetup()
:Tenga en cuenta que esta llamada
delete
debe retrasarse tanto como sea posible, dependiendo de la aplicación.