C语言-字符

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]);

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43340991/article/details/86556615