Most species in Crawl have the same dietary restrictions (or lack thereof). However, certain races will require different strategies when it comes to getting food.
Carnivorous races include felids, kobolds, and any character who gains ranks in the Carnivore mutation (and ghouls, but they're a special case and have their own section below). Partial carnivores (those who have one or two ranks of the mutation) gain more benefit from eating meat and can eat raw flesh more often, but gain less nutrition from eating any sort of vegetation. Full carnivores (i.e. felids, kobolds, and those rank 3 of the mutation) can eat chunks at any time, but cannot eat any of the various kinds of fruit or bread rations.
Carnivorous characters probably have the fewest problems with hunger, as corpses are by far the most plentiful supply of food in the dungeon. Kobolds have it even easier than most due to their additional saprovore trait, which allows them to tolerate contaminated meat and even eat rotten flesh. If you're playing a carnivorous character, there is no reason for your satiation level to ever fall below Very Full unless you are in an area where edible corpses are hard to find, such as The Crypt or The Abyss. If you wish to explore those areas, be sure to carry some nonperishable rations with you. In general, try to consume corpses and save permafood until you need it in the very late game.
Spriggans are fully herbivorous: completely incapable of eating meat. Unlike carnivores, herbivores have significant difficulty finding food because vegetation is not an easily renewable resource. Fruit and bread, while fairly common, will be exhausted outside of Pandemonium or Abyss. However, Spriggans have a very slow metabolism, which helps quite a bit.
Saprovorous races are hill orcs, ogres, trolls, kobolds, and ghouls (again, these are a special case), as well as some demonspawn that gain the saprovore mutation as part of their demonic heritage. Saprovores are capable of eating rotten flesh and gain more nutrition from contaminated chunks. Overall, this helps them with hunger management, but it does not by itself solve the problem.
Troll characters start off with the gourmand intrinsic (as well as Saprovore 2), which allows them to eat meat as if they were a carnivore without sacrificing the ability to eat vegetables. This is an absolute necessity as their incredibly fast metabolism means they basically need to be eating everything in sight. If you're playing a troll, eat chunks whenever possible, expect to need to eat some of your more permanent food supplies on a semi-regular basis, and consider avoiding corpse-free branches entirely.
Ghouls are carnivorous saprovores with a twist; instead of simply tolerating contaminated or rotten meat, they thrive on it. As they are undead, they cannot starve to death, but their bodies will rot every so often and this process speeds up when they are hungry. They can fix the rot (and heal themselves) by eating meat, particularly if it's rotten or contaminated. As such, it is generally beneficial for a ghoul character to carry around a bunch of chunks in various stages of decomposition in order to ensure that they always have something to eat when they need it.
Unlike other races, vampires subsist only on blood. At first, they must drink blood from fresh corpses (use e when standing over one), but later they gain the ability to create potions of blood from corpses to save for later. If they go without blood, vampires do not starve (in fact, they gain several helpful resistances) but their ability to regenerate health slows and eventually ceases entirely. So while a vampire doesn't have to worry about starving to death, going without blood still isn't entirely safe. Manipulating blood levels is an intrinsic part of a vampire's strategy, so you should plan ahead to determine how thirsty you should be for certain areas.
Mummies do not require and cannot consume food, so they don't have to worry about hunger in the first place.
Casters who have learned the Necromutation spell can use this to get around the issue of hunger by entering a temporary state of undeath. Being in lichform means you require no food whatsoever so long as you maintain it by recasting it every once in a while; it also gives you several nifty bonuses and resistances. There are downsides to this strategy; Necromutation is an extremely difficult spell to cast effectively, you gain the various undead weaknesses in addition to the strengths, and the spell completely removes the ability to eat or drink, rendering potions and foods like royal jelly useless.
Save Your Permafoods
While you will find a variety of nonperishable foods, you should rely on chunks from corpses for nutrition. Save permafoods for branches which contain lots of creatures that are inedible (which may change depending on your species) or that don't leave corpses. Such areas include branches like the Snake Pit and the Spider's Nest, which are both populated by creatures with poisonous meat, or the Crypt and the Slime Pits, which are mostly populated by monsters that leave no corpses at all.
Dealing With Meat
Most monsters will drop either clean, contaminated, or poisonous meat, some of which may or may not be options for you depending on your character's species. Clean chunks are obviously preferable, but most characters can manage well enough by eating contaminated chunks.Saprovores like kobolds, hill orcs, and ogres gain more nutrition from contaminated meat and can even eat rotten flesh in a pinch.
Amulets of the gourmand are extremely helpful in maintaining satiation. Most importantly they also allow consumption of chunks while not hungry. With an amulet of the gourmand, you can eat yourself all the way up to Engorged, then switch back to another amulet until you get hungry, then repeat the process.
Eating poisonous meat is a simple matter of finding a source of resist poison. Some races, like nagas, start with rPois, but most others will have to make do with finding some sort of equipment. rPois can be found on rings (though they will not self-identify), on certain types of armour, on staves of poison and occasionally on artefact weapons. A potion of resistance will work in a pinch, but using one is generally a waste of resources unless you needed the resistances for something else, like an impending pack of cold-themed enemies. Transmuters can use Ice Form, which grants rPois as well as the ability to butcher corpses bare-handed. Some monsters have meat that is both poisonous and contaminated; while having rPois means you can eat their meat, you may still get nauseous from doing so.
In dire emergencies, you might try polymorphing monsters and hope they turn into something edible. However, this is an absolute last resort, as you are not guaranteed to get something that leaves behind a corpse at all (let alone an edible one). Plus, there's always the chance that you end up facing down something you're not prepared for.
Under no circumstances should you eat mutagenic or rot-inducing meat only for getting food; neither type provides any nutrition, and both have side-effects that can prove disastrous. Ghouls can get away with eating rot-inducing meat, but then, ghouls can eat basically any meat without any problems.
Whatever chunks you're chowing down on, they will eventually rot, making them inedible to anything without the saprovore trait (kobolds, hill orcs, ogres, trolls). While this may not seem particularly significant at first glance, there are times when you won't find any edible corpses (or even any corpses at all) for an extended period, and while you may be able to go back to a previous kill, there's no guarantee it will still be fresh when you get there. Therefore, you should try to time your occasional corpse butchery so you have fresh chunks on hand when you're likely to be hungry.
An average melee character with no special hunger issues can get away with one chunk of meat every couple hundred turns, which is just slightly longer than the time it takes for a corpse to rot. Thus, the average adventurer who's just eaten should wait until they've explored a bit to chop up a new corpse. Low-hunger characters like halflings or those who've found a ring of sustenance can often afford to wait until they're hungry to butcher a corpse, high-hunger characters like centaurs or ogres will want to find something new to eat soon after they're done eating a chunk, and trolls should probably be eating just about everything they come across.
Several things will affect how often you'll need more chunks (and therefore how often you should butcher corpses), such as heavy use of spells, invocations, or other hunger-inducing abilities; a spellcaster that has just finished a long, difficult battle may need to butcher two or three corpses (or maybe just one big one, like a yak or centaur) to get themselves back to satiated.
Again, ghouls are somewhat of a special case here; they actually heal by eating rotten meat, and they have enough natural strength to be able to carry lots of extra chunks in addition to whatever other items they're lugging around. Thus, ghouls should actively chop up most things they kill so they always have a supply of rotten meat to feed and heal themselves with.
Some monsters like jellies and necrophages will eat any corpses that they come across, as well as hungry ghosts, which also come with an attack that actively drains your satiation. In addition to these enemies, other enemies exist that will make corpses unusable for food through the Animate Dead or Simulacrum spell. Monsters with Animate Dead include any sort of necromancer, shadow imps, orc high priests, etc.
Prior to 0.12, characters needed to be wielding a sharp weapon (or have claws or talons) in order to butcher corpses. This made cursed blunt weapons surprisingly dangerous. Also, spriggans could use the Fulsome Distillation spell to turn most corpses into a source of nutrition.
Prior to 0.15, contaminated chunks existed. These were less edible for most species, though hill orcs, ogres, kobolds, trolls, and ghouls could eat them with fewer or no ill effects. Also, centaurs and ogres hungered particularly quickly.