St. Charles is a city located in Madison County, Iowa. St. Charles has a 2026 population of 648. St. Charles is currently growing at a rate of 0.93% annually and its population has increased by 0.31% since the most recent census, which recorded a population of 646 in 2020.