首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在不知道最大大小的情况下打印字符串

在不知道最大大小的情况下打印字符串
EN

Stack Overflow用户
提问于 2021-10-02 11:14:43
回答 2查看 65关注 0票数 0

我应该打印出用户给出的单词中的字母数,也可以反向打印出来。当我没有字符串的大小时,我很难弄清楚我应该如何声明数组。我想先使用get,然后使用for循环,但是不知道如何在打印字母数和反向打印的函数中定义char。

EN

回答 2

Stack Overflow用户

发布于 2021-10-02 11:18:21

当您获得字符串时-例如,使用scanf()fgets() -您可以指定最大“字段宽度”,即读取到缓冲区中的最大字符数。因此,您首先设置缓冲区大小,然后读取它。

现在,在读取完字符串之后,您可以使用缓冲区中的strlen()来确定它的长度。或者,如果使用的是scanf(),则可以使用"%n"说明符来存储使用的字符数,以便scanf("%49s%n", buffer, &count);将字符串扫描到长度为50个字符的buffer中,并将字符数扫描到count中。

PS -尽管不使用gets()函数...

Why is the gets function so dangerous that it should not be used?

票数 1
EN

Stack Overflow用户

发布于 2021-10-02 11:36:33

计算用户输入的单词中的字符很容易。将计数器设置为零。一次读取一个字符(例如,使用getchar)。如果字符是字母,则递增计数器并继续循环。如果不是字母或读取失败(例如,getchar返回EOF),则退出循环并打印计数器的值。对于修饰,您可以添加代码以忽略字母开始前的空格,忽略字母结束后的空格(直到看到换行符),和/或在看到任何其他字符时报告警告。-

Eric Postpischil

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69416381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档