a1070838653 2017-07-19 03:39 采纳率: 33.3%
浏览 830

C语言新手,求大神帮忙

#define STDC_WANT_LIB_EXT1 1
#include
#include

int main() {
char a[40];
gets(a);

printf("%zu",strnlen(a,sizeof(a)));
char b[40];
gets(b);

strcpy_s(a,sizeof(a),b);

}

看书上的代码,define 那个之后 后面的函数 像 strcpy_s strtok_s 等函数都可以用了 但是我这边还是报错
错误是这个/Users/mac/Documents/txt/txt/main.c:28:12: Implicit declaration of function 'strcat_s' is invalid in C99
编译器是mac上 xcode

  • 写回答

1条回答 默认 最新

  • shifenglv 2017-07-19 04:00
    关注

    strcpy_s函数是新版本的编译器才支持的函数。像VC6.0是不支持的,VS就支持。你改用旧版本的函数(就是没有加“-s”这种函数)。把define那一行去掉,把strcat_s,strcpy_s,strtok_s等函数去掉“-s”,改用旧版本的strcat,strcpy,strok。新版本的函数与旧版本的函数在功能是完全一样的,只是参数传递方面有点不一样,具体你可以查一下这些函数怎么用。

    评论

报告相同问题?

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?