prev up next   top/contents search

comp.lang.c FAQ list · Question 8.1

Q: Why doesn't

strcat(string, '!');
work?


A: There is a very real difference between characters and strings, and strcat concatenates strings.

A character constant like '!' represents a single character. A string literal between double quotes usually represents multiple characters. A string literal like "!" seems to represent a single character, but it actually contains two: the ! you requested, and the \0 which terminates all strings in C.

Characters in C are represented by small integers corresponding to their character set values (see also question 8.6). Strings are represented by arrays of characters; you usually manipulate a pointer to the first character of the array. It is never correct to use one when the other is expected. To append a ! to a string, use

	strcat(string, "!");

See also questions 1.32, 7.2, and 16.6.

References: CT&P Sec. 1.5 pp. 9-10


prev up next   contents search
about this FAQ list   about eskimo   search   feedback   copyright

Hosted by Eskimo North