首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C语言输入字符串

C语言输入字符串

作者头像
GeekLiHua
发布2025-01-21 14:10:35
发布2025-01-21 14:10:35
98700
代码可运行
举报
文章被收录于专栏:JavaJava
运行总次数:0
代码可运行

C语言输入字符串

相关文章路径:C语言求字符串的长度->C语言字符串的复制->

C语言的字符串的联接->C语言字符串的比较->C语言查找字符->C语言BF算法->C语言输出字符串->C语言输入字符串

C语言标准函数库中 scanf 函数和 gets 函数都可以输入字符串,但是各有优、缺点。我们综合两者的优点,克服两者的缺点,设计一个函数来输入字符串。

函数原型

char* GetStr(char *str, int size);

说明:str 为字符串的起始地址,size 为字符数组的尺寸。函数读取用户从键盘输入的字符串(以换行符 ‘\n’ 结束)到 str 所指示的字符数组中,并在字符末尾添加字符串结束标记 ‘\0’,函数值为 str。显然,字符串的最大长度为 size - 1,为字符串结束标记 ‘\0’ 预留空间。若用户输入的字符过多,则函数最多读取 size - 1 个字符,剩余字符仍留在缓冲区中,可以继续被后面的输入函数读取。

裁判程序

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>

char* GetStr(char *str, int size);

int main()
{
    char a[10], b[10];
    GetStr(a, 10);
    GetStr(b, 10);
    puts(a);
    puts(b);
    return 0;
}

/* 你提交的代码将被嵌在这里 */
代码语言:javascript
代码运行次数:0
运行
复制
输入样例1
Bob
Mary
输出样例1
Bob
Mary
输入样例2
Constantine
输出样例2
Constanti
ne
输入样例2
Francisco
Stevenson
输出样例2
Francisco
Stevenson

提示:可利用 ungetc 将最后一个字符退回缓冲区。

提交答案

代码语言:javascript
代码运行次数:0
运行
复制
char* GetStr(char *str, int size)
{
	int k = 0, m = size - 1;
	char x;
	while(x = getchar(), x != '\n' && k < m)
	{
		str[k] = x;
		++k;
	}
	str[k] = '\0';
	if(x != '\n')
	{
		ungetc(x, stdin);
	}
	return str;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C语言输入字符串
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档