打印字符串是编程中的一项基本操作。它帮助您输出信息,检查和调试您的代码,并向用户显示提示信息。
在本文中,您将学习在 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)
标签:puts,打印,greeting,如何,printf,字符串,null From: https://www.cnblogs.com/web-666/p/18149986