C++ 易错知识点记录(含常用函数)

C/C++易错知识点记录(一) C/C++易错知识点记录() 用户自定义标识符由字母、数字和下划线组成,只能由字母或下划线开头. 指针问题: 例1: int **pp,*p,a=10,b=20; pp=&p; p=&a; p=&b; printf("%d,%d",*p,**pp) pp = &p; pp中储存p的地址,就是指针p的地址 p = &a;p中储存a的地址,就是p指向... 阅读详情

1. C风格字符串处理函数

strlen()  //计算字符串的长度

strcpy()  //将字符串复制到字符数组中

strncpy()

strcat()  //将字符串附加到字符数组末尾

strncat()

strcmp()

(1)头文件 #include <cstring>

(2)strlen()函数

        strlen()函数返回的是存储在数组中字符串的长度,而不是数组本身的长度。且只计算可见的字符,不把空字符'\0'计算在内。如果cosmic是字符串,则存储此字符串的数组长度不能小于strlen(cosmic)+1。

(3)strcpy()函数和strncpy()函数

char food[20] = "carrots";
strcpy(food, "flan");

strncpy(food, "a picnic basket filled with many goodies", 19);
food[19] = '\0';

        strcpy()函数会在最后自动添加'\0'。strncpy()接收第3个参数——要复制的最大字符数。注意,如果该函数在到达字符串结尾之前,目标内存已经用完,则它不会添加空字符,因此需要手动添加。上例中,如果该字符串少于19个字符,则strncpy()将在复制完该字符串之后加上空字符,以标记该字符串的结尾。

        注意,应使用strcpy()或者strncpy(),而不是赋值运算符来将字符串赋给数组。

2. 字符串的IO

        cin使用空白(空格、制表符和换行符)来确定字符串的结束位置,这意味着cin在获取字符数组输入时只读取一个单词,将其放到数组中,并自动在结尾添加空字符

        istream中的类(如cin)提供了一些面向行的类成员函数:getline()和get()。这俩函数都读取一行输入,直到到达换行符。区别是,getline()将丢弃换行符,而get()将换行符保留在输入序列中

(1)面向行的输入:getline()。调用方法:cin.getline()

        1)该函数包含两个参数,第一个参数用来存储输入行的数组的名称,第二个参数指出要读取的字符数,如果此参数为20,则最多读取19个字符,余下的空间用于存储在结尾自动添加的空字符getline()成员函数在读取指定数目的字符遇到换行符

黑客渗透测试后门隐藏技术揭秘 本文介绍了在授权渗透测试中隐藏后门文件(muma.exe)的多种技术手段。主要包括:通过WinRAR自解压脚本将后门与正常程序捆绑实现双开;利用系统自动运行目录和注册表实现开机自启;修改文件图标伪装成常用软件;将文件存放在冷门系统目录;设置系统+隐藏双重属性增强隐蔽性。此外还涉及对抗安全软件的(UPX)、免杀(msfvenom编码)技术,以及进程注入、日志清除等运行隐藏方法。所有技术仅限合法授权测试使用,未经授权使用将面临法律责任。 阅读详情

相关推荐

一个完整的c#股票分析软件源码

完整的c#股票分析软件源码

qq_35600909的博客 4536

c语言 strcat字符串拼接

字符串操作

weixin_51838255的博客 348

strcat函数及使用案例

strcat的概念及使用案例

weixin_42108533的博客 1799

strcat函数注意

strcat函数注意:        1:strcat函数在连接时,不最后的结束符\0;        2:strcat函数在连接时,从指针所指向位置遇到结束符\0的位置开始拼接。        3:如果是char buf1[100] = "12345";   char buf2[] = "abc"; strcat(buf1, buf2);可以连接成功,    在buf1里现在存的是12345a...

软件开发C/C++ 4494

strcat函数关于'/0'的问题

<br />在strcat进行连接字符串时,第一个参数的'/0'没有考进去,在连接完后的末尾不会自动补'/0',<br />比如strcat("ABCD","EFGH"); 连接后的字符串为"ABCDEFGH",记得”ABCD“的末尾是包'/0',也即是第一个ABCD后面的'/0'没有拷贝进去<br /> <br /> 

wpyao2010的专栏 3962

strcat()和strncat()详解和实现原理

函数原型: char *strcat(char *dest, const char *src); char *strncat(char *dest, const char *src, size_t n) strcat 将src的内容追到dest的尾部,将dest的’\0’覆盖并在结尾上’\0’,需要满足dest能容下src,不然会产生越界 strncat将src的n个字符追到dest尾部,若追的字符的最后一个字符是’\0’则不需要在后面追’\0’,若最后一个字符不是’\0’则需要将后面一个字符变成

Yz529的博客 882

C++易错知识点更新

这篇博客主要记录自己C++和其他编程知识相关的易错知识点,以免时间久了又踩同样的坑。 以后将会陆续保持更新。

Werther的博客 470

C/C++易错知识点(九推)

c语言的输入与输出 scanf("%d%d",&c,&d); //C语言输入流控制,声明输入类型 常用类型: %d 整型 %ld 长整型 %c 字符 %s 字符串 %f 单精度浮点型 %lf 双精度浮点型 printf("c+d=%d\n",c+d); //C语言输出流控制,...

Leonadoice的博客 465

C++易错知识点记录

持续更新。。。

qq_37174816的博客 247

c++ 初学 易错知识点

语法初学易忘点 1、cout << << endl;

qq_37393573的博客 358

C_C++易错记录

文章目录易错记录指针相关指针的指针释放指针内存重复释放C++类相关问题头文件类成员函数定义在类外类静态变量定义 易错记录 指针相关 指针的指针释放 #include <iostream> #include <stdlib.h> #include <string> #include <stdio.h> void init (void **pp) { *pp = malloc (100); } void uninit (void **pp) {

Blog of Chauncy Wang 634

C++易错知识点笔记(十四)函数指针

函数指针这个东西用的比较少,但是却是必须知道的一个内容,以前我只是大致了解了一下函数指针,毕竟没有怎么用过,今天别人给我一个题目我竟然没有反应过来,实在是不应该,因此专门写一个博客记录这个知识点。 1,函数指针基本概念 如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。 2,函数指针的定义 举个例子int(*p) (in

weixin_42445051的博客 592

牛客网编程初学者入门训练-知识点易错点感悟记录

scanf("%d",&n);中 忘记输入&或忘记输入% main()函数错输入成mian 通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。 多组输入过程中要注意“回车”也是字母,所以要“吸收”(getchar())掉该字母。 printf可以使用使用格式控制串“%md”输出域宽为m的十进制整数。 printf可以使用使用格式控制串“

m0_58125693的博客 293

c++常用知识点易错点,面试常问点

1.谈谈你对C++内存分配的理解1.1 还是的先看看C++对内存分为哪几个区?1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。想知道为什么效率高吗?因为关于栈的操作如push集成在处理器的指令集中,效率很高,但是分配的内存容量有限。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它...

constantin_的博客 1063

strncpy 末尾不会自动上'\0'

strncpy相对于strcpy来说, 被认为是比较安全的函数, 不会造成目标缓冲区的溢出. 但是该函数不会再目标缓冲区的结尾自动上字串结束标志符'\0', 需要在程序中手工在结束处置'\0'.以下为strncpy的说明: Copies the first num charac

Lutx的专栏 1万+

C语言字符串函数strcpy的详解使用和模拟

字符串函数strcpy的详解使用和模拟

yzc的博客 9857

【那些年C++趟过的坑】strncpy字符串截断缺陷

字符串拷贝,学过C/C++的人都非常熟悉,但这个函数有一个需要注意的地方,当字符串src大小比目标数组dest大时,那就会内存越界,发生崩溃。为了解决这个问题,strncpy诞生了,先看下定义:strncpy一个参数num, 意为最大可拷贝的空间大小,就是说当字符串src长度比dest大时,会自动截断。 不过谁知道呢,strncpy会不会在截断发生时被’\0’呢。.....................

xiao2macf的专栏 3750

C语言的strncpy()函数在什么情况下会添字符串末尾符‘\0‘,又什么情况下不会添

你要想使dst成为一个符合C语言解析规范的字符串,比如要让printf函数能处理这个dst字符串,你就需要手动把最后一位置为。假如src是一个1000长度的字符串,那么此时由于1000=1000,那么。假如src是一个1100长度的字符串,那么此时由于1100>1000,此时。假如src是一个80长度的字符串,那么此时由于80<1000,那么。会拷贝src中的1000个字符到dst,并且不会自动在末尾。个字符,那么显然dst的末尾不是。,此时,如果src本身就以。结尾,那么dst的末尾也为。

昊虹AI笔记 807

strcpy和strcat

strcpy和strcat注意

坚持学习 470

strcpystrcpy_s、strncpy、strncpy_s

strcpy函数语法 /* *描述:此类函数是用于对字符串进行复制(拷贝)。 * *参数: * [in] strSource:需要拷贝的字符串 * [out] strDestination:拷贝完成之后的字符串 * *返回值:指向 strDestination 这个字符串的指针 */ char* strcpy(char* strDestination, const char* strSource); strcpy_s函数语法 /* *描述:此类函数是用于对字符串进行复制(拷贝)。 * ..

Super_Jadroid的博客 1304

西科大数字信号处理期末考点及试题

包括课堂测试及答案解析,期末考点概括及考题

上一篇: C++ Primer Plus 第6版 第8章 编程练习答案
下一篇: C++ 知识点记录(3)内存模型和名称空间(Cap9)
Candy.L
博客等级 码龄7年 10粉丝 39原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值