清空缓冲区 解决字符输入跳过现象 (很重要)
两种字符串函数:即输入或输出一串字符
- gets_s函数可以接受输入带空格的数据
- puts函数可以接受输出带空格的数据并且自带换行符
字符数组与字符串的区别
char strsz [] ={"123456"}; ----->字符数组
char strchuang [] ="123456"; ------>字符串
字符串的常用操作
1、字符串通过%s来做打印 printf("%s\n","iloveyou")
%s从首地址打印到\0结束
2、可以直接用字符串给字符数组初始化
char cnum [] =" ILoveyou "; 数组长度为9 (包括\0)
数组长度: printf("%zd\n",sizeof(cnum)/sizeof(char));
3、字符串的输入
char inputstr[100];
scanf("%s",inputstr); scanf只接受空格之前的内容
- 求字符串的可见长度
通常操作字符串用 while循环
char str[] = "ILoveyou";
int count = 0;
while (str[count] != '\0')
{
count++;
}
printf("%d\n", count);
- 字符串做赋值
char one[15] = "abc123456";
char two[15] = "abcde";
int i = 0;
while (two[i] != '\0')
{
one[i] = two[i];
i++;
}
one[i] = '\0'; 字符串结束标记为\0,(必不可少)
puts(one);
- 字符串的比较过程
/字符串比较过程
//"1234"
//"13"
//从左往右依次拿出一个字符进行比较,一旦字符不同,字符大小就确定了
//‘1’==‘1’
//‘2’<'3'
//所以"1234"<"13"
(一个汉字占用两个字符) ————汉字具有连续性
char date [] ="我"; 数组长度为3
printf("%s\n",&date[1]); ————不会显示“我”字
printf("%c%c",date[0],date[1]); ————可以显示“我”字
汉字编码是一个负数