字符串
字符:
字符就是符号图案,在计算机中以整数形式存储的,需要显示时
会根据ASCII码表中的对应关系,来显示出相应的图案或符号
字符的输入:
scanf("%c",&ch);
getchar();
字符的输出:
printf("%c",ch);
putchar(ch);
串:
是一种数据结构,由一组连续的若干个相同类型的数据组成,对这种数据结构的
处理都是批量性的,在末尾有个结束标志,处理会从开头到结束标志为止。
字符串:
由字符组成的串型结构,结束标志是'\0'
字符串的输入:
scanf %s 地址
不能接收空格,自动在输入结束后,末尾加'\0'
char *gets(char *s);
功能:输入字符串,并且可以接受空格
返回值:链式调用(一个函数的返回值,作为另一个函数的参数)
char *fgets(char *s,int size,FILE *stream);
功能:可以设置输入的字符串的长度为size-1,超出部分不接受,会给'\0'预留位置
stream:键盘文件:标准输入 stdin
注意:输入的长度不足size-1时,会把最后的啊\n一并接收
返回值:链式调用
字符串的输出:
printf %s 地址
int puts(const char *s);
功能:输出一个字符串,并且会在打印完后自动再打印一个换行
返回值:成功输出的字符个数
字符串的存在方式:
字符数组:char str[10] = {'a','b','c'};
由char字符类型组成的数组,要注意为'\0'预留位置
初始化不方便
使用的是栈内存,数据可以修改
字符串字面值:
"由双引号包含的若干个字符",会在末尾隐藏一个'/0'
字符串字面值以地址形式存在,这些数据存储在代码段中
如果修改会产生段错误,相当于常量
sizeof("xixi") 计算字符串字面值中所有字符个数,包括'\0'
const char* p = "字符串字面值";
sizeof(p) 永远是4|8
注意:相同的字符串字面值,在代码段中只存在一份
常用方式:
初始化:字符数组[] = 字符串字面值;
自动为'\0'预留位置
初始化完成后,字符串就存在两份,一份在代码段,一份在栈内存(可修改)