Here's a cute little pseudo-standard that I use:

Variable names, or names of structs, classes, etc. have names like KleenexBox (for the struct) and kleenexBox (for the variable), since those things are like a single word. Functions, however, are more like a sentence, so separate parts are separated with underscores. That way, you can have a function name like kleenexBox_empty(KleenexBox *), it makes it clear that this is a function which empties a thing of type KleenexBox, as opposed to a function that puts a kleenex in a box and empties it, or a variable which represents an object: KleenexBoxEmpty.

Also note that programmers tend to start function and variable with lowercase letters, names of types of things (structs and classes) with uppercase letters, and constants with all uppercase letters. The Ruby language actually enforces this practice. While I was hacking through the Wolfenstein 3D source code, however, I found a ton of variable names that seemed to have been capitalized with no rhyme or reason. That's old C code for you. The APCS AP test does that, too (airplane::GetRows), but I probably shouldn't expect too much from them. I could go on for a looong time about the goofiness of the APCS course...