strcpy

Error C2664: 'strcpy' : cannot convert parameter 2 from 'const wchar_t [9]' to 'const char *'.How to solve this error?

匿名 (未验证) 提交于 2019-12-03 01:12:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: How can I get rid of this error and other while compiling the below code? #include "stdafx.h" #include <string> #include <vector> #include <windows.h> #include <atlstr.h> #include <tchar.h> #include <stdio.h> #define MAX_PATH_LENGTH 256 int main(int argc, char *argv[]) { int i; char path[300]; bool FindFilesFromFolder(); getchar(); return 0; } bool FindFilesFromFolder() { HANDLE hFile; WIN32_FIND_DATA FindFileData; std::vector<char> fileList; char chFolderpath[_MAX_PATH]; CString strExtension = _T("*.B11"); strcpy(chFolderpath, _T("F:\\test\

C error:format &#039;%s&#039; expects argument of type &#039;char *&#039;but argument 2 has type &#039;char (*)[100]&#039;

匿名 (未验证) 提交于 2019-12-03 00:56:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I'm working on an exercise in c the last few days and I'm having this warning (as the title suggests). I've tried a bunch of stuff but I don't really know how to exactly fix this. I'm not good at programming so there are mistakes. Below are the structs I'm using (which cannot be changed because that's how they are given): typedef struct bookR* book; struct bookR{ char author[MAXSTRING]; enum genres{fiction,scientific,politics}; int id; char review[MAXLINES][MAXSTRING]; }; typedef struct nodeR* node; struct nodeR{ book b; node next; };

【C++】严重性代码说明项目文件行错误

匿名 (未验证) 提交于 2019-12-03 00:34:01
C4996 ‘strcpy’ 严重性代码说明项目文件 行错误 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. Test f:\cworkspace\test\test\main.c 30 用VS编译代码是遇到如上问题,vs准备弃用strcpy的,安全性较低,所以微软提供了strcpy_s来代替,如果想继续使用strcpy的,main前面加上 #pragma warning(disable:4996) 参考: http://blog.csdn.net/sunnyliqian/article/details/50293279 error C4996: 'scanf' 严重性代码说明项目文件 行错误 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See

段错误问题总结

匿名 (未验证) 提交于 2019-12-03 00:30:01
1. 对const修饰的变量赋值 定义如下一个const修饰的数组,并对该数组memset const char a[10]; memset(a, 0, sizeof(a)); 2. free static修饰的变量 代码举例如下: static char *ptr = NULL; ptr = (char*)malloc(10); free(ptr); ptr = NULL; 3. 函数参数未判空 举例如下: void func(void *name) { strcpy(name, "andy"); } 为安全起见, 应该要判断 name 是否空指针。代码实现如下: void func(void *name) { if (NULL==name) { return ; } strcpy(name, "hello"); } 4. 函数返回值未判空 如下代码,如果 content中不包含“hello”,则strstr返回NULL,此时对startIndex操作就会出段错误。 startIndex = strstr(content,"hello"); strcpy(newValue, startIndex); 比较安全的处理为: startIndex = strstr(content,"hello"); if (startIndex) { strcpy(newValue,

mem系列与str系列函数了解

匿名 (未验证) 提交于 2019-12-03 00:28:02
系列函数通常处理内存内容,而Str通常处理字符串,这俩个家族系列函数经常会使用,在网上搜集了一些资料进行了整理,方便自己以后查阅,下面介绍了memcpy,strcpy,strncpy,memmove,memcmp,strcmp,strcat,strstr,strtok等函数: 函数原型 :void *memcpy(void *dest, const void *src,size_t n); 函数功能 :内存拷贝;将src指向内存地址的连续N个指针位置的内容拷贝至dest指针指向的位置 函数返回 :无 参数说明 : dest ― 目的内存空间指针 src ― 源内存 n ― 拷贝指针位置个数 # include <memory> include <iostream> include < string > void main() { char * src = “Hello Frankie World !”; char * dest = new char [ 50 ]; memset (dest, 0 , 50 ); memcpy (dest,src, 7 ); std :: cout <<”dset值为:”<< std ::endl; Out(dest); } 函数原型 :void * memccpy(void *dest, void *src, unsigned char c,

strcpy、memcpy和memset之间的区别

匿名 (未验证) 提交于 2019-12-03 00:22:01
今天刷题时遇到了这个问题,记录一下。 strcpy 比较简单,就是拷贝字符串,遇到'\0'时结束拷贝 。 memcpy 用来做内存拷贝,可以拷贝任何数据类型的对象并指定拷贝数据的长度:char a[100],b[50]; memcpy(b, a, sizeof(b)); 总结一下: strcpy和memcpy主要有以下3方面的区别。 复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。 复制的方法不同。strcpy不需要指定长度,它遇到字符串结束符"\0"便结束。memcpy则是根据其第3个参数决定复制的长度。 用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy。 //注意:如果用的是sizeof(a),则会造成内存泄露。 比较复杂点的是 memset ,用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为 ‘ ’或 ‘\0’,比如: char a[100];memset(a, '\0', sizeof(a)); 另外比较方便的是对结构体的操作, memset可以方便的清空一个结构类型的变量或数组: 比如有结构体struct sample_strcut stTest,一般清空结构体的话得用如下方式: struct sample_struct { char csName

用循环队列解决舞伴配对问题发现自己的问题

匿名 (未验证) 提交于 2019-12-03 00:17:01
1.首先是对vs2017这款软件的使用 1.VS中的scanf()这个函数的使用问题   直到这次写代码我才知道VS中用scanf是会被警告的,VS中正规的类似于scanf()函数的输入函数是scanf_s()只有使用这个函数你才不会报错,它有三个参分别是数据类型,地址,最大存储量,   还有两种方法   第一在代码的第一行加上“ #define _CRT_SECURE_NO_WARNINGS ”。    右键点击源文件,    依次选中:C/C++ >> 预处理器,在右侧预处理器定义右侧添加上:_CRT_SECURE_NO_DEPRECATE 2.第二就是我的知识了,真的好菜 while()括号中的是循环条件,而不是停止条件,请一定要想好循环条件是啥 我本来以为%s输入有一个特点就是遇到空格就停止,其实这是函数scanf()函数的特点而不是%s的特点,如果想把空格也吞了,那就用gets(),还有两个函数就是getchar()和getch() 还有就是写代码的习惯很不好,总是思路混乱,不知道接下来干啥,其实应该,想着写着,就像翻译一样,把你的想法,思路,用代码翻译下来 只是太薄弱,尤其是在数组的形参表那里,要去补补了,传递的是一个地址,怎么写才好,是 status inqueue(queue all[],&man)还是 status inqueue(queue all,&man)呢

字符串、字符和字节

匿名 (未验证) 提交于 2019-12-03 00:05:01
C语言中没有显示的字符串数据类型,字符串以字符串常量或者字符数组的形式出现,字符串常量适用于那些程序不会对它们进行修改的字符串。所有其它字符串都必须存储于字符数组或动态分配的内存中。 字符串 是一串零个或多个字符,并且以一个位模式为全0的NULL字节结尾。 字符串所包含的的字符内部不能出现NULL字节。 NULL字节是字符串的终结符,但它并不是字符串的一部分,所以字符串的长度并不包含NULL字节。 字符串函数的声明都在 string.h 头文件中。 字符串的长度就是它所包含的字符个数,通常使用函数 strlen 来计算字符串的长度。 sizet_t strlen ( char const * string ); size_t 定义在 stddef.h 中,它是一个无符号整数类型。 在表达式中使用无符号数可能导致不必要的结果,如下: if ( strlen ( x ) >= strlen ( y ))... if ( strlen ( x ) - strlen ( y ) >= 0 )... 第二条语句的结果永远为真,因为strlen(x)、strlen(y)的返回值都是无符号数,所以>=左边是无符号数,无符号数不可能小于零。 最常用的字符串函数都是不受限制的,就是说它们只是通过寻找字符串参数结尾的NULL来判断它的长度。在使用这些函数时,必须要 保证结果字符串不会溢出内存。

理解 strcpy方法

匿名 (未验证) 提交于 2019-12-02 23:54:01
1 char * strcpy( char * strDest, const char * strSrc) 2 { 3 assert((strDest!=NULL) && (strSrc !=NULL)); // strDest和strSrc不为空 4 char * address = strDest; // 保存strDest,用于返回 5 while ( (*(strDest++) = *(strSrc++)) != ' \0 ' ); // 逐个字符赋值 6 return address; // 返回地址 7 } 注意: 1、栈上的char数组,数组名就是一个指针,这个指针的指向不能修改,也就是不能加加减减或者赋值,可以通过[]访问数组元素。 2、文本字符串赋值给char指针,这个指针指向的内容不能修改。 3、调用strcpy方法的时候,要保证:   a、保证两块内存没有重合的地方;   b、strDest最好有刚刚好的内存,可以容纳strSrc的内容。如果strDest内存大了,造成浪费。如果strDest内存小了,溢出,占到其他的内存,导致未定义行为。 转载于:https://www.cnblogs.com/nzbbody/p/3565176.html 文章来源: https://blog.csdn.net/weixin_30542079/article/details

头文件 &lt;string.h&gt; &lt;cstring&gt; &lt;string&gt; 区别

匿名 (未验证) 提交于 2019-12-02 23:32:01
1. #include <string.h> C语言的头文件,包含比如strcpy之类的字符串处理函数。注意C语言里没有string类的概念,不要弄混。 2. #include <string> C++的头文件,包含std::string的定义,属于STL范畴 C++版本的头文件,和C语言版本的<string.h>对应,将C语言的函数定义在std命名空间内。 定义: /** @file cstring * This is a Standard C++ Library file. You should @c \#include this file * in your programs, rather than any of the @a *.h implementation files. * * This is the C++ version of the Standard C Library header @c string.h, * and its contents are (mostly) the same as that header, but are all * contained in the namespace @c std (except for names which are defined * as macros in C). */ // // ISO C++