I am a CS undergrad and I think I am fit to answer this. CS is learning about theoretical stuff, proofs and maths. If you think you can handle the heat and really enjoy maths, then CS is your thing. It has nothing to do with application of computer science in real world, in fact the amount of programming that you would do will be quite limited to mathematics. It is a very tough field to take if you ask me. Your prime task would be dealing with optimizations, calculating time complexity of algorithms, inventing algorithms, finding mathematical proof to support your algorithm and stuff like that.
Computer Engineering on the other hand is about innovation and trade offs. You use the concepts that have been developed already to create something functional and solve a problem in real life. You have an arsenal of algorithms, frameworks and languages to choose from and it's your design decision to pick the right combination to get the job done. As a software engineer, your job is not to create new algorithms when you find yourself out of options, rather you are expected to find the best out of the available options (hence analyzing trade offs). It's a fun thing to do, and you would feel proud after you create stuff on your own.
There is a third division called Developers, but let's leave it for another day. I fall in the middle of software engineer and developer. Being in a CS course, I am required to study the basics of Computer Science as well (I hate maths when I feel it's not of any use to me).
Watch this video to get an in depth understanding of what field of computer science holds for you and think before you jump in.