在 C 中打印字符串 - 如何在 C 中打印字符串

打印字符串是编程中的一项基本操作。它帮助您输出信息,检查和调试您的代码,并向用户显示提示信息。

在本文中,您将学习在 C 中打印字符串的一些不同技术。

(本文视频讲解:java567.com)

在 C 中字符串是什么?

字符串是一系列字符,如字母、数字或符号,它们被组合在一起。它用于在程序中表示文本。

在 C 中,字符串不是内置数据类型。相反,它们被表示为以特殊字符 null 终止的字符数组,\0

这是一个在 C 中创建字符串的示例:

char greeting[] = "Hello world!";

在上面的代码中,我声明了一个名为 greeting 的字符数组,并用双引号 " " 包裹的字符串 Hello world! 进行了初始化。

C 编译器会自动在 Hello world! 的末尾包含 null 终止符 \0

如何使用 printf() 函数在 C 中打印字符串

printf() 函数是 C 中打印字符串最常用的方式之一。

它代表着 "print formatted"(格式化打印),并属于标准输入/输出库 stdio.h。因此,为了使用它,您需要首先在程序的开头包含 stdio.h 头文件。

让我们看一下以下示例:

#include <stdio.h>

int main(void) {
  char greeting[] = "Hello world!";

  printf("%s\n", greeting);
}

// 输出:
// Hello world!

在上面的示例中,我首先在程序的开头包含了 stdio.h 头文件,其中包含了 printf() 函数的声明。

接下来,我声明了一个名为 greeting 的字符数组,并用文本 Hello world! 进行了初始化。

最后,我使用 printf() 函数打印文本 Hello world!

在使用 printf() 函数打印字符串时,您需要使用格式说明符。

格式说明符充当占位符,告诉 printf() 函数如何格式化和打印特定类型的数据。它们以百分号 % 开头,后跟指定要格式化的数据类型的字符。字符串的格式说明符是 %s

因此,在行 printf("%s\n", greeting); 中,%s 格式说明符告诉 printf() 打印存储在 greeting 变量中的字符串,后跟换行字符 \n

请注意,当打印字符串时,%s 格式说明符不包括 null 终止符 \0。它打印字符串中的字符,直到遇到它为止。

如何使用 puts() 函数在 C 中打印字符串

用于打印字符串的另一个函数是 puts()

让我们看一个以下示例:

#include <stdio.h>

int main(void) {
  char greeting[] = "Hello world!";

  puts(greeting);
}

// 输出
// Hello world!

在上面的示例中,我首先包含了包含 puts() 声明的 stdio.h 头文件。

然后,我声明了一个字符数组,并用文本 Hello world! 进行了初始化。该字符串自动以 null 终止符 \0 结束。

最后,我使用 puts() 函数将字符串打印到控制台,并将字符串变量 greeting 作为参数传递。

puts() 函数会自动在字符串末尾添加换行字符 \n

请注意,puts() 函数用于打印以 null 终止的字符串。以 null 终止的字符串是存储在内存中的字符序列,后跟一个称为 null 终止符 \0 的字符。

到目前为止,所有的示例都只使用了以 null 终止的字符串,例如 char greeting[] = "Hello world!";。在内存中,它将被表示为 ['H', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd', '!', '\0']

故意创建非以 null 终止的字符串在 C 中并不常见。

以下是一个非以 null 终止字符串的示例:char greeting[] = {'H', 'e', 'l', 'l', 'o'};这个字符数组不包括 null 终止符 \0,因此它是一个非以 null 终止的字符串。

如果尝试使用 puts() 打印非以 null 终止的字符串,您将得到未定义的行为,例如字符串末尾的垃圾字符:

#include <stdio.h>

int main(void) {
  char greeting[] = {'H', 'e', 'l', 'l', 'o'};

  puts(greeting);
}

// 第一次运行代码时的输出:
// Helloq

// 第二次运行代码时的输出:
// Hellop

// 第三次运行代码时的输出:
// Hellow

printf() 函数 VS puts() 函数 - 有何区别?

您可能想知道 printf()puts() 之间的区别是什么。

puts() 函数按照原样打印文本,不进行任何格式化。它还会自动在字符串末尾添加换行字符。

printf() 函数不会自动添加换行符 - 您必须显式添加。

但是,它允许进行格式化输出,并且可以更灵活地控制和插入不同数据类型到格式字符串中:

#include <stdio.h>

int main(void) {
    char name[] = "John";
    int age = 30;

    // 使用 puts() 打印字符串
    puts("Using puts():");
    puts("My name is John and I'm 30 years old.");

    // 使用 printf() 打印字符串
    printf("\nUsing printf():\n");
    printf("My name is %s and I'm %d years old. \n", name, age);
}

在上面的示例中,puts() 函数打印了一个简单的字符串,没有进行任何格式化。它还自动在字符串末尾添加了换行符 \n

另一方面,printf() 函数格式化了字符串并嵌入了两个变量值。它使用格式说明符,例如 %s 用于字符串和 %d 用于整数,来指定变量保存的数据类型,以及变量应该插入到字符串中的位置。它还在末尾添加了换行符。

结论

在本文中,您了解了 C 中用于打印字符串的两个最常用的函数。

printf() 函数通常用于向控制台打印格式化文本。它允许您格式化输出并打印字符串、数字和字符。

puts() 函数相比 printf() 更简单。它非常适用于基本文本输出,并自动在打印的字符串末尾添加换行符 \n

感谢您的阅读,祝您编程愉快!

(本文视频讲解:java567.com)

posted @   晓风晓浪  阅读(903)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示