
Lucas P. answered 11/10/21
Experienced CompSci TA; Algorithms and Programming Enthusiast
Hello Bryjaun,
Firstly, I'd like to establish that your question seems to be more in the subjective nature than objective, so any answers here will be opinions in at least some way. This isn't to say we can't be as objective as possible though:
The C language contains numbers (whole and decimal values; also specifically different "sizes" for these numbers, consider uint32 vs uint64), arrays, pointers, characters, hashes (think dictionaries/JSON/key-value-relations), and void. There may be some I'm missing, but this should cover the majority of it. Notice though how I leave out "string".
The C-language actually doesn't contain strings, rather, it supports "arrays of characters". This isn't any different from an array of numbers, it's just that instead of having blocks of (contiguous/"adjacent") memory appearing like:
Array of 3 'int'-types: [---][---][---]
They would appear like:
Array of 3 'char' types: [-][-][-]
So, if a string-type may be of particular use to the programmer, then it can be argued that C does not contain all of the data types every programmer would need. 'Need' is a funny word though, and is also typically used in a non-objective way, anything that can be done with a string-type can be done with an array of characters, just some extra work may be needed to create otherwise lacking functionality.
For more information about this kind of stuff, don't hesitate to create a new question, or reach out to me! In hope this helped.
Lucas