c++字符串的问题
其实题主的疑问在于strcpy当中传入的到底是什么? 下面是strcpy的源码,/****char *strcpy(dst, src) - copy one string over another**Purpose:* Copies the string src into the spot specified by* dest; assumes enough room.**Entry:* char * dst - string over which "src" is to be copied* const char * src - string to be copied over "dst"**Exit:* The address of "dst"**Exceptions:*******************************************************************************/char * __cdecl strcpy(char * dst, const char * src){ char * cp = dst; while( *cp++ = *src++ ); /* Copy src over dst */ return( dst );}下面谈谈数组不能直接用赋值运算符相互赋值的事情,就是int num1 int num2 num1 = num2 是不行的除了基本类型char short int long float double外,其他任何类型都不能用=号进行同类型间赋值,除非重载=号操作符号(比如类类型的 = 赋值,就是调用了默认的重载赋值运算符或者是自定义的重载赋值运算符)如果喜欢数组可以使用=号赋值,本来重载=号操作符就可以了做法是将数组用模板自己重新实现一次,这样可以使用成员函数重载=号操作符,但是你绝对不会喜欢诸如这样得写法:Array\u0026lt;int\u0026gt; exmp;所以,如果要给数组赋值,还是老老实实用memcpy吧//memcpy.c#include \u0026lt;stdio.h\u0026gt;#include \u0026lt;string.h\u0026gt;int main(){ char* s="GoldenGlobalView"; chard; clrscr(); memcpy(d,s,(strlen(s)+1)); printf("%s",d); getchar(); return 0;}#include\u0026lt;string.h\u0026gt;int main({ char* s="GoldenGlobalView"; char d; memcpy(d,s+12,4);//从第13个字符(V)开始复制,连续复制4个字符(View) d=\u0026#39;\\0\u0026#39;;//memcpy(d,s+12*sizeof(char),4*sizeof(char));也可 printf("%s",d); getchar(); return 0;}转载一篇教程: 【c++字符串的问题】 在C和C++中,数组是一种指针,因而数组存在许多导致错误的陷阱。例如,由于C和C++不检测下标是否超出数组的边界而使程序导致越界错误;大小为n的数组的下标必须是0、1、2…、 n-1,下标是不允许改变的;不能一次入输人或输出整个数组,而只能单独读取或者输出每个数组元素;不能用相等运算符或者关系运算符比较两个数组(因为数组名仅仅是指向内存中数组起始位置的指针);当把一个数组传递给一个能处理任意大小数组的常用函数时,数组的大小也必须作为一个额外的参数传递给该函数;不能用赋值运算符把一个数组赋给另一个数组(因为数组名是const类型指针,而常量指针不能用于赋值运算符的左边)。尽管所有这些处理能力似乎应该是很自然的,但是C和C++都没有提供这种能力。然而,C++提供了实现这种能力的手段,这就是运算符重载。
本节的范例建立了一个数组类,它能检测范围以确保数组下标不会越界,允许用赋值运算符把一个数组赋给另外一个数组。数组对象自动知道数组的大小,因而不用将数组的大小传送给函数。可以用流读取运算符和流插入运算符输入输出整个数组。还可以用相等运算符==和!=比较数组。范例程序中的数组类用一个static成员跟踪程序中实例化数组对象的数目。
本例将加深读者对数据抽象的认识。当然,读者还可以增加数组类的其他功能,类的开发是十分有趣并富有挑战性的。
图8.4中的程序演示了类Array和用于该类的重载运算符。首先来看一下main函数中的驱动程序,然后再探讨类的定义以及类的每个成员和友元函数的定义。
推荐阅读
- 江苏■江苏交控坚持问题导向、瞄准职工需求——找准“病灶”当好“产改先行官”
- 贵州在建骨干水源工程达到465座有效解决工程性区域性缺水问题
- 四川眉山瓦屋山景区就游客投诉、停车难等问题公开道歉
- 杭州已整改城市道路无障碍环境问题12467处
- 互联网怎样解决“家政服务上门速度慢”的问题
- 中东问题|
- 中国网汽车|购车2个多月、仅行驶8000多公里 宝骏730遭遇7处问题
- |沛县深入开展教育领域突出问题专项整改
- 交换机,路由器经常性的死机咋办
- 微博目前已经支持文本,图片,位置分享,为啥没有语音和视频呢微博的pm肯定想过这两种微博形态,但迟迟不做的原因到底是啥。是语音和视频不符合产
