C语言输入字符串

C语言输入字符串

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复制#include

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复制输入样例1

Bob

Mary

输出样例1

Bob

Mary

输入样例2

Constantine

输出样例2

Constanti

ne

输入样例2

Francisco

Stevenson

输出样例2

Francisco

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

提交答案:

代码语言:javascript复制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;

}

相关推荐

塔克夫SPT-AKI离线版本安装指南
beat365中国

塔克夫SPT-AKI离线版本安装指南

📅 10-24 👁️ 6247
陌陌直播最新版
365bet苹果版

陌陌直播最新版

📅 07-22 👁️ 5123
电动窗帘电机原理是怎样的?
365bet苹果版

电动窗帘电机原理是怎样的?

📅 08-13 👁️ 2903
北京Skp工资待遇怎么样
beat365中国

北京Skp工资待遇怎么样

📅 10-02 👁️ 6419
南侍御以石相赠,助成水声,因以绝句谢之
365外网足球

南侍御以石相赠,助成水声,因以绝句谢之

📅 07-16 👁️ 6395
悟空理财收益是多少怎么算?悟空理财一个月能赚多少?
防鼠灭鼠,传统的捕鼠笼到底为什么捕鼠率低?
365bet苹果版

防鼠灭鼠,传统的捕鼠笼到底为什么捕鼠率低?

📅 10-07 👁️ 9261
红曲米制作方法
beat365中国

红曲米制作方法

📅 08-29 👁️ 1745
小米8的处理器是多少(小米8手机参数)
365bet苹果版

小米8的处理器是多少(小米8手机参数)

📅 08-30 👁️ 4328