字符串和字符数组

(1)C语言没有字符串这种数据类型,所以通常用字符数组来存放字符串,
(2)初始化:
char ch1[10]={‘a’,‘b’,‘c’,‘d’,’\0’};输出的strlen(ch1)仍然为4;
char ch2[10]=“abcd”;系统自动在有效字符后面加入一个空字符,给ch2分配的空间大小为5,但是调用strlen(ch2)时输出的仍是4;

//字符数组输入输出的两种方式

int i;
char ch4[5];
for(i=0;i<5;i++)
{
		ch4[i]=getchar();
		//scanf("%c",&ch4[i]);
}
for(i=0;i<5;i++)
{
	//printf("%c ",ch4[i]);
	putchar(ch4[i]);
}

//字符串输入输出的两种方式

char ch4[5];
char ch5[5];
scanf("%s",ch4);
printf("字符串:%s\n",ch4);
//getchar();
gets(ch5);
printf("gets后,puts前\n");
puts(ch5);

解释:当调用scanf()函数,最后按回车键时,系统会把你输入的字符以及回车键都放在输入缓冲区中,然后依次取出数据,当其中数据被取完时,才会等待键盘输入下一条;当执行完printf(“字符串:%s\n”,ch4)时,输入缓冲区中还有回车符,所以gets(ch5)这条语句取出了回车,所以输出的ch5是换行

***吸收缓冲区中的回车符的三种方式:

1.getchar();
2.scanf("%c%*c",&ch);表示不会将ch后的任意字符存入缓冲区
3.scanf(" %c",&ch);这是第二个输入语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值