三种获得字符串的方法的区别:scanf gets getchar

三种获得字符串的方法的区别:scanf    gets     getchar

1)使用scanf("%s",&s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束

2)gets()函数将接收输入的整个字符串直到遇到换行为止

 

char src[100];

gets(src);

 上述的两者在接受字符串时:  

a.不同点:  scanf不能接受空格、制表符Tab、回车等;  而gets能够接受空格、制表符Tab和回车等;  

b.相同点:  字符串接受结束后自动加'\0'。

3)

getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab) getchar()使用不方便,解决方法:  

使用下面的语句清除回车:  while(getchar()!='\n');   

 

具体的实例:

gets获取字符串代码

#include<stdio.h>
 
int main()
{
    char src[100];
 
    printf("input a string:");
    gets(src);
 
    printf("src = %s\n",src);
 
 
    return 0;
}

 

使用getchar()获取字符串

#include<stdio.h>
 
int main()
{
    char ch;
    char src[10];
 
    int i = 0;
 
    while((ch = getchar()) != '\n')
    {
        src[i] = ch;
	i++;
 
	if(i == 9)
	{
	     printf("error!\n");
	     exit(1);
	}
 
	src[i] = '\0';
    
    }
 
    return 0;
}

 

scanf的输入数组的方法

1)

 

#include<stdio.h>
 
int main()
{
    int a[3];
    int i;
    int *p = a;
 
    for(i = 0; i <= 2; i++)
    {
        scanf("%d",p++);//不可以用a++ 是因为a是常量不可以自加,*p = a 指针可以自加 p++
    }
    p = a;
    for(i = 0;i < 3; i++)
    {
        printf("a[%d] = %d\n",i,*(p + i));
    }
        
	return 0;
}

2)

#include<stdio.h>
 
int main()
{
    int a[3];
    int i;
    
    for(i = 0; i <= 2; i++)
    {
        scanf("%d",&a[i]);
    }
    p = a;
    for(i = 0;i < 3; i++)
    {
        printf("a[%d] = %d\n",i,a[i]);
    }
        
	return 0;
}

3)

#include<stdio.h>
 
int main()
{
    int a[3];
    int i;
   
    for(i = 0; i <= 2; i++)
    {
        scanf("%d",a+i);
    }
    p = a;
    for(i = 0;i < 3; i++)
    {
        printf("a[%d] = %d\n",i,*(a + i));
    }
        
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢打篮球的普通人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值