标题:照着打的出了错,会了语法不会编,很尴尬的状态,讲的会又啥也不会
只看楼主
梨花压海棠
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2020-2-13
得分:0 
回复 10楼 叶纤
不是大哥,您注释的三句我都改了啊,第一形参加了,第二形参改了,第三它加不了_s啊,我把您回复我的也粘贴运行了,也是提示_s的错误,应该是我那strncat_s的函数没掌握
2020-02-14 12:25
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
得分:5 
以下是引用梨花压海棠在2020-2-14 11:15:00的发言:


错误    C4996    'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.    API    E:\Project\C\shujujiegou\API\API\pr_倒转str.c    31   
这是没加_s的错误
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void inverse(char *p);
void inverse01(char *p, char *result);
void main()
{
    char buf[] = "abcde";
    char mybuf[1024] = { 0 };
    inverse(buf);
    inverse01(buf, mybuf);
}
void inverse(char *p)
{
    if (p == NULL)
        return;
    if (*p == '\0')
        return;
    inverse(p+1);
    printf("%c", *p);
}
void inverse01(char* p,char* result)
{
    if (p == NULL||result==NULL)
        return;
    if (*p == '\0')
        return;
    inverse(p + 1,result);

    strncat_s(result, p, 1);
}  
这是我改了形参的代码,还是提示一样的问题,应该是我strncat这个函数没搞明白,但是用法我也看不懂,视频上也就是这样写的,
errno_t strncat_s(char * restrict dest,rsize_t destsz,const char * restrict src,rsize_t count);

我没注释的地方你就不会改了
程序代码:
    #include <stdio.h>
#include <stdlib.h>
#include <string.h>
void inverse(char *p);
void inverse01(char *p, char *result);
void main()
{
    char buf[] = "abcde";
    char mybuf[1024] = { 0 };
    inverse(buf);
    inverse01(buf, mybuf);
}
void inverse(char *p)
{
    if (p == NULL)
        return;
    if (*p == '\0')
        return;
    inverse(p+1);
    printf("%c", *p);
}
void inverse01(char* p,char* result)
{
    if (p == NULL||result==NULL)
        return;
    if (*p == '\0')
        return;
    inverse01(p + 1,result);//加个01

    strncat(result, p, 1);
}   


把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-02-14 12:31
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
得分:5 
加-s需要errno_t strncat_s(char * restrict dest,rsize_t destsz,const char * restrict src,rsize_t count);这样的用法
和不加_s是两种用法

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-02-14 12:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499216-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.913105 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved