关于scanf、gets、getchar和printf、puts、putchar的组成及功能区别详解

关于scanf:

scanf(“(输出字符)”,参数);

首先,scanf存在于头文件stdio.h中,其函数类型和参数如下:

int printf( const char *format [, argument]... );

通过不同的输入字符可以来输入其相对应的值。

关于gets:

其使用形式:gets(字符数组中的字符串);

其也存在于头文件stdio.hj里,其函数类型和后面参数如下:

char *gets( char *buffer );

gets 函数的作用对象是字符数组(字符串),而不是单个字符。gets 函数用于从标准输入中读取一行字符,并将其存储到指定的字符数组中,直到遇到换行符为止。它会将输入的字符序列包括换行符存储在字符数组中,并自动在末尾添加一个空字符 '\0' 以表示字符串的结束。

使用 gets 函数读取输入时,空格和制表符都会被视为普通字符,会被正常读入并存储到字符数组中。直到遇到换行符或文件结束符(EOF)才会停止读取。因此,gets 函数将会读取一行完整的文本,包括其中的空格、制表符等空白字符。

下面举出使用样例:


#include <stdio.h>

int main(  )
{
char line[81];
printf( "输入一个字符串: " );
gets( line );
printf( "%s\n", line );
return 0;
}

关于getchar:

其使用形式为:单个字符或整形数据=getchar();

单个字符可以为字符数组中的单独一个元素,或者一个单独字符。

其函数类型和参数如下:

int getc( FILE *stream );

这里特意说一下尽管 getchar() 返回的实际上是一个整数值,但由于字符类型可以隐式转换为整数类型,所以可以将其赋给字符数组的元素。在使用 putchar() 函数将字符输出时,它会将整数值转换回相应的字符并进行显示

getchar 函数的作用对象是单个字符,而不是字符数组或者字符串。它每次从标准输入中读取一个字符,并返回该字符对应的整数值。

如果需要将多个字符存储到字符数组中,可以通过循环调用 getchar 函数逐个读取字符,并将它们存储到字符数组的不同位置。例如,以下代码演示了如何使用 getchar 函数逐个读取字符并存储到字符数组中:

#include <stdio.h>

int main() {
    char arr[100];
    int i = 0;
    char c;

    while ((c = getchar()) != '\n') {
        arr[i] = c;
        i++;
    }

    printf("输入的字符数组是:");
    for (int j = 0; j < i; j++) {
        printf("%c", arr[j]);
    }
    printf("\n");

    return 0;
}

在上述代码中,getchar 函数每次读取一个字符,并将其存储到字符数组 arr 中,直到遇到换行符。最后,通过循环遍历字符数组,并分别打印出其中的每个字符,从而输出所读取的字符数组。

因此,getchar 函数的作用对象是单个字符,而不是整个字符数组或者字符串。

关于printf:

其使用形式为:printf(“(输出字符)”,参数);

其函数类型和参数如下:

int printf( const char *format [, argument]... );

通过不同的输出字符可以来输入其相对应的值。

关于puts:

其使用形式为puts(字符数组中的字符串)。

其函数类型和参数为:

int puts( const char *string );

puts 函数的作用对象是字符串,而不是单个字符或字符数组。

puts 函数用于将一个以 null 字符 '\0' 结尾的字符串输出到标准输出流,并自动在结尾添加一个换行符 \n。它可以直接输出整个字符串,无需逐个输出字符。

以下是使用 puts 函数输出字符串的示例:

#include <stdio.h>

int main() {
    char str[] = "hello";
    
    puts(str);

    return 0;
}

在上面的代码中,puts 函数直接输出了字符串 str,并在末尾添加了一个换行符。无需使用循环逐个输出字符,直接将整个字符串作为参数传递给 puts 函数即可。

因此,puts 函数的作用对象是字符串,即以 null 字符结尾的字符数组。

关于putchar:

其使用形式为:putchar(单个字符)。

其函数类型和参数如下:

int putchar( int c );

putchar 函数的作用对象是单个字符,而不是字符串。它用于将一个字符输出到标准输出流中,输出后光标位置向后移动一个字符位置。

如果需要输出一个字符串,可以通过循环调用 putchar 函数逐个输出字符串中的每个字符。例如,以下代码演示了如何使用 putchar 函数逐个输出字符串中的每个字符:

#include <stdio.h>

int main() {
    char str[] = "hello";
    int i = 0;

    while (str[i] != '\0') {
        putchar(str[i]);
        i++;
    }

    return 0;
}

在上述代码中,putchar 函数每次输出一个字符,并将光标位置向后移动一个字符位置,直到遍历完整个字符串。通过使用循环来遍历字符串中的每个字符,使得可以逐个输出整个字符串。

因此,putchar 函数的作用对象是单个字符,而不是整个字符串。如果需要输出整个字符串,可以通过循环遍历字符串中的每个字符,并逐个调用 putchar 函数输出。

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

矢鱼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值