Concatenate Strings in Solidity
Concatenating two strings in Solidity can be done this way:
String string_3 = string.concat(string_1, string_2);
This is possible since solidity 0.8.12.
Before, concatenating two strings in Solidity was done by using abi.encodePacked(),
bytes memory cBytes = abi.encodePacked(_a, _b);
string memory c = string(cBytes);
String manipulation in Solidity is very rudimentary (aka not existent). Those operations should be done outside of a transaction and only the result should be submitted to the smart contract.
Example
The following code example shows both ways:
pragma solidity 0.8.20;
contract concatStrings{
function concatMyStrings(string memory _a, string memory _b) public view returns(string memory c){
return(string.concat(_a, _b));
}
function concatMyStrings2(string memory _a, string memory _b) public view returns(string memory c){
bytes memory cBytes = abi.encodePacked(_a, _b);
string memory c = string(cBytes);
return c;
}
}