gets与puts-str系列-指针本质在C语言中,gets() 和puts() 函数用于读取和打印字符串。它们与字符串数组和指

举报
吃瓜面包君 发表于 2023/07/22 23:36:06 2023/07/22
【摘要】 在C语言中,gets() 和puts() 函数用于读取和打印字符串。它们与字符串数组和指针密切相关。以下是对这些操作和指针的本质的解释以及一些示例代码:1.gets() 和 puts() 函数:.gets() 函数用于从标准输入流(键盘)读取一行字符串,并将其存储在指定的字符串数组中。它会一直读取,直到遇到换行符或文件末尾。.puts() 函数用于将字符串输出到标准输出流(屏幕)上,并自动在...

在C语言中,gets() 和puts() 函数用于读取和打印字符串。它们与字符串数组和指针密切相关。以下是对这些操作和指针的本质的解释以及一些示例代码:

1.gets() 和 puts() 函数:

.gets() 函数用于从标准输入流(键盘)读取一行字符串,并将其存储在指定的字符串数组中。它会一直读取,直到遇到换行符或文件末尾。
.puts() 函数用于将字符串输出到标准输出流(屏幕)上,并自动在末尾添加换行符。

示例代码:

#include <stdio.h>

#define SIZE 50

int main() {
    char str[SIZE];

    printf("Enter a string: ");
    gets(str);  // 读取输入字符串

    printf("You entered: ");
    puts(str);  // 打印字符串

    return 0;
}

在上面的示例中,使用 gets() 函数从用户输入中读取字符串,并将其存储在字符数组 str 中。然后,使用 puts() 函数打印出读取的字符串。

2.字符串数组和指针的本质:

.在C语言中,字符串可以用字符数组表示。字符数组是一维数组,用于存储和操作字符串的字符序列。在内部,C将字符串表示为以空字符(’\0’)结尾的字符数组。
.由于数组本质上是一个指向第一个元素的指针,因此可以使用指针访问和操作字符串数组。

示例代码:

#include <stdio.h>

int main() {
    char name[] = "John";  // 字符数组(字符串)
    char *ptr = name;     // 指向字符串的指针

    printf("Original string: %s\n", name);

    // 使用指针修改字符串
    *ptr = 'M';
    *(ptr + 1) = 'a';

    printf("Modified string: %s\n", name);

    return 0;
}

在上面的示例中,首先创建了一个字符数组 name 并初始化为字符串。然后,创建一个指向该字符串的指针 ptr。通过使用指针,我们可以修改字符数组中的字符,从而修改字符串。输出结果显示了修改后的字符串。
需要注意的是,使用 gets() 函数和直接操作字符串时,请确保输入的字符串不会超出数组的大小,以避免缓冲区溢出的问题。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。