Characters on a menu list, characters in the text box, playable characters in the game itself?
Most usually want to edit menus or text boxes so I will assume that. It can be quite a different thing even if they are both text; fixed length menus work a different way to more dynamic text boxes.
It is generally not an easy task either.
In the text handler there will usually be something that indicates what the end of a text line/box is. Whether this is a hard limit in the case of fixed length menus where it just takes every 12 or so bytes or something that deals in pointers or some kind of markup in the text (if this start new line sort of thing) you first start by having to find that and figure out how its underlying code works.
In the case of fixed length text for menus you probably get to redo the whole menus -- if it is normally grabbing 12 bytes at location 0, 12, 24, 36, 48... bytes then suddenly making it 15 or 20 (neither of which are particularly useful in a coding environment*) means you are going to have overlap.
In the case of more conventional text then yeah time to figure out when a game decides to start a new line. If you are lucky then the game will be purely pointer based and it might accept you making them longer by yourself. At that point you probably get to figure out how to extend the text box background graphics, though you will probably have to do that for 99% of games you expand the displayed text length size for.
Actually you might want to look up guides on how to implement variable width fonts as it is essentially the same problem, or at least faces it when making one.
*there is a reason many things in computing are multiples of 8 or powers of 2 (1,2,4,8,16,32,64,128,256,512,1024...)
So for my money there are two approaches to figuring this out.
1) Use of graphics system to work backwards to figure out how it makes the numbers it feeds said graphics system** for the location (quite quick as it is usually not so many steps between things here)
2) Finding text in the ROM and following that forwards through the code as it gets read and turned into something that can be displayed on screen (bit slower than graphics but still a very viable method, and might include some other info you want to know, especially if you want to add more characters to decode in your hack)
**text happens in one of three ways on a console
i) Uses the background/BG area of graphics or whatever it is called on your given system. If you listen to the device makers and look at most games then this is what should be being used as BG is designed to cover large areas and usually has the options for it.
ii) Uses the sprites. Not the suggested method (sprites are not usually designed to cover large areas and the amount of things that can be handled is minimal) but has been seen in a handful of games, and might be used for smaller things.
iii) Text as graphics. Usually reserved for more decorative text approaches, or things in the game world.
You then get to look up the hardware for your system, figure out which method is being used (there is a reason emulators feature bg/map viewers and sprite/obj viewers), set relevant breakpoints for anything twiddling those locations or handling the screen position of them (in Nintendo consoles sprites tend to be handled by the obj(ect) area memory aka OAM but sega stuff varies in what they call it) and then find the thing that says to add whatever width to the text location each time until end of line is reached and then edit that to read more.
In the case you want to add a bunch more playable characters then actually the above stuff tends to come back in, except it is even more abstract.
Other than the pointers thing you are not likely to get an answer of "change this byte from this to this and there you go", and even if you do then one or more of the things above will have gone into it to get you to that point. It is also not something many hackers do without specific intent or find by accident as most are content to work within the limits.
Possible alternative if it is for a menu or something smaller. Pseudo variable width font. If a character is 16x8 or something you might be able to get thin characters with multiple in one tile or multiple across a couple of tiles. For instance l (that is lower case L for those with odd fonts in their browser), i, j,1 and such are often noted as at least being able to be thin characters compared to w, m and most others. To this end things like hello might be able to be shortened a bit into a 4 character in the game word but display as 5. This you do by finding the font and graphical editing along with basic text editing. I would not do this for a whole game but some have done things like it to save space at times.