字符串(字符数组)
和java语言一样,严格用双引号代表字符串,单引号代表字符
在C语言中没有专门为字符串定义变量类型;用字符数组存储字符串,字符数组(在用字符串进行赋值时)实际存储的元素个数要比字符串元素个数多一,因为字符数组最后会存储一个空字符\0(普通字符数组并不会有)
定义
明确给出数组长度
1 | char name[40]; |
赋值时确定数组长度
1 | char str1[] = "xfssef"; // char str1[] = {"xfssef"}; |
新值覆盖旧值
1 | char str="abcdefg" |
字符串的输入和输出
输入
scanf函数中的输入项如果是字符数组名,不要再加地址符&
1 | char str[10]; |
1 | char str1[10],str2[10],str3[10]; |
输出
1 | char str[] = "abcdef" |
字符串处理函数
puts、gets
strlen和sizeof
都可以用来计算字符串的长度,但是差异却很大
当定义字符串时没有明确说明字符串多长
strlen会给出准确答案,但sizeof会比strlen大1,这是因为它算上了空白符
1 | char str[] = "abc"; |
当定义字符串时明确说明字符串多长
sizeof会给出字符数组的大小,strlen给出准确值
1 | char str[40] = {'a', 'b', 'c'}; |
strcpy和strcat
strcpy是为字符串赋值;strcat字符串后面添加字符串
1 | char arr[20]; |