C字符串输出

C字符串输出

C标准库3个用于打印字符串的函数:

  • puts()
  • fputs()
  • printf()

区别:

与字符串输入和函数一样,这三个标准输出函数的形参不一样

示例代码:

/*
 * @Author: Lucifer
 * @Data: 2023-05-28 22:19:00
 * @LastEditors: Lucifer
 * @LastEditTime: 2023-05-28 22:19:00
 * @Description: 
 */
# include<stdio.h>
# define DEF "I am a #defined string"

int main(void)
{
    char str1[80] = "An array was initialized to me.";
    const char * str2 = "A pointer was initialized to me.";

    puts("I am a argument to puts().");
    puts(DEF);
    puts(str1);
    puts(str2);
    puts(&str1[5]);
    puts(str2 + 4);
    /** 
     * puts()函数的形参是字符串的地址 -> 指针.因为数组自动把数组名作为字符串第一个单词的指针,所以可以直接传数组名
     */

    getchar();

    return 0;
}

注意:puts()函数的特点:

  • 形参只需要传入字符串的地址(指针即可)
  • 在显示字符串时自动在末尾添加一个换行符
  • &str1[5]是指数组的第六个元素(r),从该元素开始输出往后的内容
  • puts()在遇到空字符串时就停止输出

fputs()函数

puts()函数区别:

  • fputs()函数的第二个参数指明要写入的数据文件,如果要显示在显示器上可以使用stdio.h中定义的C标准输出:stdout
  • fputs()函数不会再末尾添加换行符

printf()函数

puts()函数的区别:

  • 可以把字符串地址作为参数
  • 不会再字符串结尾加上换行符

自定义输入/输出函数

使用getchar()函数和putchar()函数定义一个类似puts()的函数,要求不会在字符串结尾添加换行符

示例代码:

# include<stdio.h>
void putl(const char * string);

void putl(const char * string)
{
    while (* string != '\0')
        putchar(*string++);
}

注意:

  • 因为传入的参数是指针,且不会修改里面的值,所有用const修饰符修饰
  • 另一种表达式写法while(*string) -> 当string指向空字符时,*string的值是0,测试条件为假

设置一个用户自定义输出,输出字符串当中的字符数:

示例代码:

/*
 * @Author: Lucifer
 * @Data: 2023-05-28 23:55:58
 * @LastEditors: Lucifer
 * @LastEditTime: 2023-05-29 00:09:57
 * @Description: 
 */
# include<stdio.h>
void put_div(const char * string);
int put_count(const char * string);

int main(void)
{
    put_div("If I'd as much money");
    put_div(" as I could spend,\n");
    printf("I count %d characters.\n");
        put_count("I never would cry old chairs to mend.");
    
    getchar();

    return 0;
}

void put_div(const char * string)
{
    while(*string) // 遇到空字符时测试条件为假
        putchar(*string++);
}

int put_count(const char * string)
{
    int count = 0;
    while (*string)
    {
        putchar(*string++);
        count++;
    }

    putchar('\n');

    return (count);
}
posted @   俊king  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-05-29 5.29把分散的文件合并
点击右上角即可分享
微信分享提示