A level editor is just a program that creates files. How it does this is totally up to you. You pick what data is necessary to save from the map (images to load, positions of objects, etc.). You either have your level editor save this as plain text, or you save it as binary (raw bytes).
Your game will have a function for loading the map from a file. How this function works will depend completely on how you wrote your save function (since it's effectively reversing it).
If you're asking how to create the GUI for the level editor, then it depends. You can use SDL, SFML, Allegro, or any other graphics library if you're up for creating a bunch of form elements (picture boxes, menus, textboxes, etc.) I think SDL has some 3rd party add-ons that help with that, not 100% on that though, haven't used it in a while. Last I knew, SDL was capable of loading PNG's through SDL_image. (windows binaries should be pre-built with it, in linux I assume it would have it as long as it compiled succesfully and found an appropriate version of libpng).
Another option would be to use something like FLTK (pronounced full-tick). This is a library for creating GUI's and would probably make creating your level editor a lot quicker.
As for tutorials...googling SDL tutorials dropped these as the first two links: