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;

}

✧ 相关推荐 ✧

车载定位仪追踪器一般装哪里?
彩票365苹果版怎么下载不了

车载定位仪追踪器一般装哪里?

📅 10-21 👁️ 5338
木星曾多次为地球抵挡陨石轰击,如果木星消失,地球还会存在吗?
鹿晗多平台账号被禁,工作室致歉,此前因直播“竖中指”引发争议