字符串和字符串结束标志
在C语言中,是将字符串作为字符数组来处理的,关心的是字符串的有效长度而不是字符数组的长度,为了测定字符串的实际长度,C语言规定了字符串结束标志’’
什么是’’
1 ’’代表ASCII码为0的字符
2 从ASCII码表可以查到,ASCII码为0的字符不是一个可以显示的字符,而是一个“空操作符”,即它什么也不做
3 用它作为字符串结束标志不会产生附加的操作或增加有效字符,只起一个供辨别的标志
字符串的初始化
1 2 3 4 5 6 | char c[10]; c[0]=’I’; c[1]=’ ’; c[2]=’a’; c[3]=’m’; c[4]=’ ’; c[5]=’h’; c[6]=’a’; c[7]=’p’; c[8]=’p’; c[9]=’y’; |
字符数组的输出
1 2 | char c[10]={’I’,’ ’,’a’,’m’,’ ’,’h’,’a’,’p’,’p’,’y’}; char c[10]={’c’,’ ’,’p’,’r’,’o’,’g’,’r’,’a’,’m’}; |
字符数组的输入输出可以有两种方法:1 逐个字符输入输出(%c) 2 整个字符串一次输入输出(%s) 。输出的字符中不包括结束符’’
用%s输出字符串时,printf函数中的输出项是字符数组名,不是数组元素名。如果一个字符数组中包含多个’’,则遇第一个’’时输出就结束
字符数组的输入
scanf函数中的输入项c是已定义的字符数组名,输入的字符串应短于已定义的字符数组的长度
1 2 3 4 5 | char diamond[5][5]={{’ ’,’ ’,’*’}, {’ ’,’*’,’ ’,’*’}, {’*’,’ ’,’ ’,’ ’,’*’}, {’ ’,’*’,’ ’,’*’}, {’ ’,’ ’,’*’} }; |
系统自动在China后面加一个’’
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> int main(int argc, char *argv[]) { char c[15]= {'I',' ','a','m',' ','a', ' ','s','t','u','d','e','n','t','.' }; int i; for(i=0; i<15; i++) printf("%c",c[i]); printf("n"); return 0; } |
str1, str2, str3 在输入 How are you? ↙ 后,保存的内容是什么?