C语言笔记 20200513
字符串.
●以0 (整数0)结尾的- -串字符
●0或'\0’是一样的,但是和'0'不同
●0标志字符串的结束,但它不是字符串的一部分
●计算字符串长度的时候不包含这个0.
●字符串以数组的形式存在,以数组或指针的形式访问
●更多的是以指针的形式string.h里有很多处理字符串的函数
字符串常量
char* s = "Hello, world!";
●s是一个指针,初始化为指向一个字符串常量
●由于这个常量所在的地方,所以实际上s是const
char* s,但是由于历史的原因,编译器接受不带
const的写法
●但是试图对s所指的字符串做写入会导致严重的后果
●如果需要修改字符串,应该用数组:char s[ ]="Hello,world!";
字符串输入输出
char string[8];
●scanf(“%s", string);
, printf(“%S", string);
●scanf读入- -个单词(到空格、tab或回车为止)
●scanf是不安全的,因为不知道要读入的内容的长度
安全的输入
●char string[8];
● scanf(“%7s", string); .
●在%和s之间的数字表示最多允许读入的字符的数
量,这个数字应该比数组的大小小一
●下一次scanf从哪里开始?
常见错误
●char *string;
●scanf(“%s", string);
●以为char*是字符串类型,定义了一个字符串类型的
变量string就可以直接使用了
●由于没有对string初始化为0,所以不一定每 次运行
都出错
空字符串
●char buffer[100]="";
●这是一个空的字符串,buffer[0] == \0'
●char buffer[] =“”;
●这个数组的长度只有1!
strlen
●size_ _t strlen(const char *s);
●返回s的字符串长度(不包括结尾的0)