c 语言自行实现字符串常用库函数_C语言核心技术-Visual Studio 2019常用技巧

ef678f8360e72003d1d29898554c0fb8.png

Visual Studio 2019常用快捷键

在日常使用Visual Studio 开发中会使用到如下常用的快捷键

快捷键名称 功能
Ctrl+k,f 自动格式化代码
Ctrl+k,c 注释代码
Ctrl+k,u 取消注释代码
Ctrl+F5 不调试运行
Ctrl+shift+b 编译,不运行
F12 查看函数定义
ctrl+- 退出函数定义
F5 调试运行
F11 逐语句(遇到函数跳到函数内部逐语句执行)
F10 逐过程 (不会进入函数内部,但是函数会被调用)
Shift+F11 跳出

Visual Studio 2019 调试程序

在后期编写程序时,经验不足的开发人员通常会遇到两种错误:编译错误和运行时错误,编译错误通常是编写的程序不满足编译器的语法规范,而运行时错误则是程序运行时发生的错误,想要排查程序运行时的错误,就需要使用IDE提供的调试功能。

在源文件debug.c中定义一个返回两个整数相乘的方法mul,然后在main函数中定义两个变量作为参数传入mul方法中,并调用两个整数相乘的方法,输出计算结果

#include <stdlib.h>
/*
定义两个整数相乘并返回
*/
int mul(int source, int target) {
//打印输出传入mul方法的两个整数参数的值
printf("source = %dn",source);
printf("target = %dn", target);
return source * target;
}
/*
Visual Studio 2019的调试
@QQqun 936638595

@QQ 773555568
@version 2019/12/15
*/
int main(int argc, char* argv[])
{
//定义两个变量
int source = 12;
int target = 12;
//调用两个整数相乘的方法,并将计算的结果保存到整数变量result中
int result = mul(source, target);
printf("result = %d n",result);
system("pause");
return 0;
}

在调试程序前首先需要下断点,可以使用快捷键F9下断点或者取消断点

aa1d32740edf1b0a30905b0a233ce373.png

下断点

然后使用F5调试运行程序,程序会在之前下过断点的地方暂停(无论是逐语句还是逐过程),此时可以在Visual Studio提供的自动窗口中观察变量的值

6d86dbaa309ac8efc4a5f4e5e1773630.png

如果想要一行一行调试代码,可以使用快捷键F11,当遇到函数时(例如这里的mul函数),会进入函数的内部一行一行执行,直到该函数结束为止。

如果调试时不想进入函数的内部,可以使用快捷键F10,当程序中调用了其他函数时不会进入其他函数内部,但是函数会被调用。

如果调试时想要从一个断点跳到另外一个断点,可以使用shift+F11实现。

Visual Studio 2019的C4996错误

C4996是Visual Studio 2019提供的错误编号

首先明确下C4996错误出现错误的原因:
Visual Studio 希望用户使用Visual Studio提供的非标准库函数,但是程序员希望使用标准库函数,因为标准库是可以移植的。

如果在Visual Studio中使用标准的库函数,就会引发C4996错误类似于这种提示:error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.这里的strcpy是标准的库函数,而在Visual Studio中使用这个函数引发了C4996错误。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
解决visual studio 2019 的C4996错误
@QQqun 936638595

@QQ 773555568
@version
*/
int main(int argc, char* argv[])
{
//定义一个字符串
char str[32] = "";
//将hi string 复制到str中
strcpy(str, "hi string");
printf("str = %s n",str);
system("pause");
return 0;
}

那么如何解决问题呢?

方案1:在源文件的第一行定义宏#define _CRT_SECURE_NO_WARNINGS

方案2:在源文件的第一行定义#pragma warning(disable:4996)

解决Visual Studio 2019的C4996错误的两种方式

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
解决visual studio 2019 的C4996错误
error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
@QQqun 936638595

@QQ 773555568
@version
*/
int main(int argc, char* argv[])
{
//定义一个字符串
char str[32] = "";
//将hi string 复制到str中
strcpy(str, "hi string");
printf("str = %s n",str);
system("pause");
return 0;
}

Visual Studio 2019的代码片段

Visual Studio 2019提供了代码片段的功能,其作用就是配置代码片段后,可以通过输入指定的快捷键生成模板代码,这样可以大大提高开发效率。

在后期编写C程序中,需要反复使用到如下的代码片段

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
/*
@QQqun 936638595

@QQ 773555568
@version
*/
int main(int argc, char* argv[]) {
return 0;
}

首先自定义代码片段文件MyCCode.snippet

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>MyCCodeTemplate</Title>
<Shortcut>mcct</Shortcut>
<Description>c的标准模板代码</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Code Language="cpp">
<![CDATA[#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
/*
@QQqun 936638595

@QQ 773555568
@version
*/
int main(int argc, char *argv[])
{
system("pause");
return 0;
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

然后选择Visual Studio 2019 菜单 工具->代码片段管理器

21b618c8a02afa6841f9e5f5c17d62b7.png


代码片段管理器

选择代码片段管理器的语言为C++,然后选中My Code Snippets

3aa41c101b3517e8c88f234b2422e163.png


然后为导入的代码片段选择一个位置

9303a1c3949b0bb72487c57449def8e5.png

导入成功

ac1a2920fd105cb2bd119a1181f74047.png

导入成功之后新建任意的C程序源文件,在源文件中输入快捷键mcct就可以生成如下的代码片段

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
/*
@QQqun 936638595
@QQ 773555568

@version
*/
int main(int argc, char* argv[])
{
system("pause");
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值