What provides curses headers named curses.h?
You can install libncurses5-dev package via Software Center or:
sudo apt-get install libncurses5-dev
Also, you can install the package by clicking here.
When you need a file or package and can't find it you can use some tools.
1. apt-file
First, install apt-file and update it.
sudo apt-get install apt-file
apt-file update
You can search with apt-file needed files or packages.
apt-file search curses.h
2. Use packages.ubuntu.com
Go to this link.
On right top, select package contents if your are searching a file included with a package. If you need a package directly, just search it with its name choosing package names.
Find package from file
Edit: This only works for an installed package, so is not able to answer the question. Better is heartmagic's answer
To find out what package a file is part of, you can use
dpkg -S <file name>
For example, dpkg -S curses.h
gives me this output:
libncurses5-dev: /usr/include/ncurses.h
libncurses5-dev: /usr/include/curses.h
Find files in package
Edit: You need to have the package installed for this to work.
To get the list of files provided by a package, use
dpkg -L <package name>
For example dpkg -L libncurses5-dev
gives me the following output
/.
/usr
/usr/include
/usr/include/curses.h
/usr/include/cursesapp.h
/usr/include/cursesf.h
/usr/include/cursesm.h
/usr/include/cursesp.h
/usr/include/cursesw.h
/usr/include/cursslk.h
/usr/include/eti.h
/usr/include/etip.h
/usr/include/form.h
/usr/include/menu.h
/usr/include/nc_tparm.h
/usr/include/ncurses_dll.h
/usr/include/panel.h
/usr/include/term.h
/usr/include/term_entry.h
/usr/include/termcap.h
/usr/include/tic.h
/usr/include/unctrl.h
/usr/lib
/usr/lib/libform.a
/usr/lib/libmenu.a
/usr/lib/libncurses++.a
/usr/lib/libncurses.a
/usr/lib/libpanel.a
/usr/lib/libtic.a
/usr/share
/usr/share/doc
/usr/share/doc/libncurses5-dev
/usr/share/doc/libncurses5-dev/copyright
/usr/share/doc/libncurses5-dev/changelog.Debian.gz
/usr/include/ncurses.h
/usr/lib/libncurses.so
/usr/lib/libtic.so
/usr/lib/libform.so
/usr/lib/libmenu.so
/usr/lib/libpanel.so
/usr/lib/libcurses.a
/usr/lib/libtermcap.a
/usr/lib/libtermcap.so
/usr/lib/libcurses.so
This includes directories as well.
Find ONLY files (not directories) in package
To get just the files the package contains:
dpkg -L libncurses5-dev | while read file; do if [[ -f $file ]]; then echo ${file}; fi; done
(Description: Get the provided files, and for each one, only print it if it is a file.)
More information
You might find this table useful. Just look at the first column (action) and third column (deb) to get a good overview of what you can do. (unless you are curious of course, then look at the other columns.)