字符串字面量
字符串字面量是一对双引号括起来的字符序列,最早我们在printf中就见到了。有时字符串字面量的长度比较长,可以用\来将一整行进行划分,但是\后的下一行必须从行首开始;还有一种办法就是将一个字符串字面量拆分成多个字符串字面量,也就是用多组双引号进行分割,这时他们会被自动组合起来,当然这时没有缩进的限制。
字符串字面量在C语言中是按照字符数组来处理的,每一个字符串字面量都以\0(空字符)来结尾,所以长度为n的字符串字面量,其字符数组长度为n+1。
既然字符串字面量按照数组的形式存储,那就和指针有联系,数组的名就是指向该数组开始的指针。
如果char * p;p="123";那么p是指向常量的地址,这时"123"不可被更改。如果char c;c[ ]="123"这时,c为一个数组,其中的值可以被更改。
读、写字符串
%s允许printf函数进行字符串的写操作,从字符串开始一直到第一个空字符处停止。如果只想显示字符串的一部分,可以用转换说明%n.ps,n表示指定的字段长度,p表示显示的字符串的长度。
puts函数,puts(str)就可显示需要的字符串,该函数在输出全部字符串后会添加一个换行符。
%s允许scanf函数把字符串读入字符数组,但是当遇到空格时停止,如果一个字符串中含有空格,它不会被完全读入。
gets函数,它不会在开始读字符前跳过空白字符,知道读到换行符才停止,忽略换行符,不把它存储到数组中。
字符串处理函数
strcpy函数:
char * strcpy(char *s1, const char *s2);
功能是将s2的字符串复制到s1,s2的空字符也会被复制;然后返回s1。
strlen函数:
size_t strlen (const char *s);
返回字符串的s的长度,s中的第一个空字符之前的字符的个数,空字符不被包括在内。
strcat函数:
char *strcat(char*s1, const char *s2);
将s2的内容追加到s1的末尾,返回s1。
strcmp函数:
int strcmp (const char *s1, const char *s2);
根据ASCII字符集比较s1和s2的大小,返回-1,0,1。
领取专属 10元无门槛券
私享最新 技术干货