如何编写C程序来声明字符串的输入和输出?

时间:2015-12-03 04:36:41

标签: c

我编写了一个C程序来接受字符串的输入然后打印它。这是我的代码:

#include <stdio.h>
int main(){
    char name[20];
    printf("Enter your name: ");
    scanf("%s",name);
    printf("Your name is %s.",name);
    return 0;
}

这是正确的方法吗?

2 个答案:

答案 0 :(得分:1)

运行时会发生什么?它能为您提供正确的输出吗?

基本上,是的,这是正确的答案。但是有一些问题:

  • 只能接受最多19个字符的名称(字符串空终止需要1个字符)。除此之外,您还有buffer overflow漏洞,这是一个严重的安全风险。您可以通过将可读取的数据量限制为接收缓冲区的数量来解决此问题。
  • "%s"消耗前导空白字符,输入终止于第一个空白字符。你可能不想要 如果空白区很重要就会发生这种情况。
  • 显示字符串后不会打印新行。

答案 1 :(得分:-1)

这是非常完美的人。 只有几个方面...... 如果您的名字的长度大于您的字符的最大长度,它将崩溃。 它看起来也更漂亮:

printf("\nYour name is....."); //use \n starting your new line. It will look clearer

但重要的是:它的工作原理!!!