Character Arrays; Strings in C
Text is usually kept as an array of characters, as we did with
line[ ]
in the example above. By convention in C, the last character in a character array should be a `\0' because most programs that manipulate character arrays expect it. For example, printf
uses the `\0' to detect the end of a character array when printing it out with a `%s'.We can copy a character array s
into another t
like this:i = 0; while( (t[i]=s[i]) != '\0' ) i++;Most of the time we have to put in our own `\0' at the end of a string; if we want to print the line with
printf
, it's necessary. This code prints the character count before the line:main( ) { int n; char line[100]; n = 0; while( (line[n++]=getchar( )) != '\n' ); line[n] = '\0'; printf("%d:\t%s", n, line); }Here we increment
n
in the subscript itself, but only after the previous value has been used. The character is read, placed in line[n]
, and only then n
is incremented.There is one place and one place only where C puts in the `\0' at the end of a character array for you, and that is in the construction"stuff between double quotes"The compiler puts a `\0' at the end automatically. Text enclosed in double quotes is called a string; its properties are precisely those of an (initialized) array of characters.
0 comments:
Post a Comment