我应该打印出用户给出的单词中的字母数,也可以反向打印出来。当我没有字符串的大小时,我很难弄清楚我应该如何声明数组。我想先使用get,然后使用for循环,但是不知道如何在打印字母数和反向打印的函数中定义char。
发布于 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?
发布于 2021-10-02 11:36:33
计算用户输入的单词中的字符很容易。将计数器设置为零。一次读取一个字符(例如,使用
getchar
)。如果字符是字母,则递增计数器并继续循环。如果不是字母或读取失败(例如,getchar
返回EOF
),则退出循环并打印计数器的值。对于修饰,您可以添加代码以忽略字母开始前的空格,忽略字母结束后的空格(直到看到换行符),和/或在看到任何其他字符时报告警告。-
Eric Postpischil
https://stackoverflow.com/questions/69416381
复制相似问题