scanf输入字符串
char c, d;
scanf("%c", &c);
scanf("%c", &d);
//当输入换行符(回车),scanf把它当成字符,存在变量中d了
printf("%c, %c\n", c, d);
解决上面问题的方法
char c, d;
scanf("%c", &c);
//解决方法
setbuf(stdin, NULL);//清除缓冲区的\n
scanf("%c", &d);
//当输入换行符(回车),scanf把它当成字符,存在变量中d了
printf("%c, %c\n", c, d);
//gets()
//gets() 字符串输入 可以读空格
char str3[10];
gets(str3);
printf("%s\n", str3);
//puts(str3);//输出字符串,参数是字符串地址
//getchar,putchar
char s;
s = getchar();//读取缓冲区的单个字符
//printf("%c\n", s);
putchar(s);//输出单个字符
//一维字符数组
char str[6] = { 'a', 'b', 'c', 'd', 'e' };
char* p = str;//&str[0]
for (int i = 0; i < 5; i++)
{
printf("%c\t", *(p + i));
}
//常量字符串
1.
//常量字符串
char* str = "abcdf";
//*str = 'j'; //常量字符串不能修改单个字符
printf("%s\n", str);
2.
char str1[20] = "qwertyuio";
str1[1] = 'a'; //修改下标为1的字符
printf("%s\n", str1);
//字符串数组,本质是指针数组
//字符串数组,本质是指针数组
char* s4[3] = { "jklasd", "weuro", "zmcx" };//由char*指向每个元素
printf("%s\n", s4[1]);
s4[1] = "abc";
//*s4[1] = 'i'; //这样是错误的,元素的值不可以修改
printf("%s\n", s4[1]);
//二维字符数组
//二维字符数组
char s5[2][4] = { "abc", "def" };
s5[0][0] = '8';//可以修改元素的值
puts(s5[0]);
puts(s5[1]);