Ricky leo 2019-07-06 15:59 采纳率: 0%
浏览 2533

字符串连接函数 中的 错误提示“strcat_s”: 用于调用的参数太少 是怎么回事,求指点?

我改成这样后,运行结果又出了问题,strcat_s(buffer, 100,areaNumber);
用的是VS2013

#include <stdio.h>
#include <string.h>
void main()
{
    char areaNumber[5];
    char phoneNumber[12];
    int input;
    char extraNumber[5];
    char buffer[25] = { 0 };
    printf("请输入区号:");
    gets_s(areaNumber, 80);
    printf("请输入电话号码:");
    gets_s(phoneNumber, 80);
    printf("有分机号吗?(y/n)");
    input = getchar();
    fflush(stdin);
    if (input == 'y')
    {
        printf("请输入分机号:");
        gets_s(extraNumber, 80);
        strcat_s(buffer, areaNumber);
        strcat_s(buffer, "-");
        strcat_s(buffer, phoneNumber);
        strcat_s(buffer, "-");
        strcat_s(buffer, extraNumber);
    }
    else{
        strcat_s(buffer, areaNumber);
        strcat_s(buffer, "-");
        strcat_s(buffer, phoneNumber);
    }
    printf("您的电话号码是%s。\n", buffer);
}
```![图片说明](https://img-ask.csdn.net/upload/201907/06/1562400259_71379.jpg)
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-07-06 16:04
    关注

    你的buffer只有25
    strcat_s(buffer, 25,areaNumber);

    类似的
    gets_s(extraNumber, 80);
    而你 char extraNumber[5];,那么要么前面修改为5,要么后面修改为80
    而且要记住,你输入的字符最大长度必须比数组长度小1。否则结束符没地方放。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料