社区
C++ 语言
帖子详情
string.assign产生异常后string=""会有什么后果?
Soft_micro
2006-06-22 03:53:43
string str("aaa");
str.assign(str,str.find('b'),str.length());
str = "";
...全文
546
5
打赏
收藏
string.assign产生异常后string=""会有什么后果?
string str("aaa"); str.assign(str,str.find('b'),str.length()); str = "";
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fireseed
2006-06-23
打赏
举报
回复
你应该尽量避免你的程序产生异常,而不是在产生异常后来捕捉它!
Soft_micro
2006-06-23
打赏
举报
回复
改为这样呢:
string str("aaa");
try{
str.assign(str,str.find('b'),str.length());
}catch(...)
{
}
str = "";
fireseed
2006-06-22
打赏
举报
回复
find函数如果没找到会返回size_t(-1)
assign函数有多个重载,按照楼主的调用方式,会被匹配到下的assign函数
basic_string& assign(
const basic_string& _Str,
size_type off,
size_type _Count
);
其中off是源串的偏移量,看一下它的实现代码(MS VC8.0):
_Myt& __CLR_OR_THIS_CALL assign(const _Myt& _Right,
size_type _Roff, size_type _Count)
{ // assign _Right [_Roff, _Roff + _Count)
if (_Right.size() < _Roff) // 如果你给的偏移量大于源串的大小
_String_base::_Xran(); // 直接抛出异常
……
/////////////////////////////////////////////
_MRTIMP2 void __cdecl _String_base::_Xlen() // 抛出异常的实现
{ // report a length_error
_THROW_NCEE(length_error, "string too long");
}
/////////////////////////////////////////////
所以你最好这样用:
string str("aaa");
size_t nOff = str.find('b');
if ( nOff != string::npos )
{
str.assign(str, nOff,str.length());
}
str = "";
fireseed
2006-06-22
打赏
举报
回复
string str("aaa");
str.assign(str,str.find('b'),str.length());
str = "";
assign 异常后,你的程序就和你说bey bey了
Soft_micro
2006-06-22
打赏
举报
回复
没人知道?
连连看.NET 1.41全部源码
这个是游戏源码类视图; 这个是全部源码[LLK1.41_FullSources.rar],今日做过最后一次修正;发布源码是因为朋友的要求还有工作上的事情,晚上也想好好休息休息;我想我这次的发布,我也可以轻松两天了。 更新:删除了一些废代码,从最初到现在整个程序是动过多次手术的组合品;高手免看,因为这个东西不上您的档次;菜鸟也免看,以免乱码误人子弟。 代码结构很简单,核心算法已...
告别Wi-Fi和蓝牙!用ESP32的ESP-NOW协议,5分钟搞定两块开发板间的无线通信
本文详细介绍了如何利用ESP32的ESP-NOW协议实现快速、稳定的点对点无线通信,无需依赖Wi-Fi或蓝牙。通过实战代码示例和性能优化技巧,帮助开发者5分钟内完成两块ESP32开发板间的数据传输,适用于物联网、智能家居等场景。
连连看.NET 1.41 发布(改造路径提示,提供算法源码)
连连看.NET 1.41 版本下载 (源码在本文内) 除路径提示外,其他未做任何改变,可能播放音乐列表有问题,暂时不做修正了,大不了关一下再开吧; 关于修正路径提示: 本来写这个游戏是为了做个迷宫求解的算法,结果被做成这个了;一直路径绘制还是用的寻路的算法,今天改了改,改成实际的连线路径,因为有2位说过寻路路径太不顺眼; 关于源码: 我相信真正的开发人员是不屑一顾的,毕竟这些只是很...
[导入]连连看.NET 1.41 发布(改造路径提示,提供算法源码)
摘要: 连连看.NET 1.41 版本下载 (源码在本文内) 除路径提示外,其他未做任何改变,可能播放音乐列表有问题,暂时不做修正了,大不了关一下再开吧; 关于修正路径提示: 本来写这个游戏是为了做个迷宫求解的算法,结果被做成这个了;一直路径绘制还是用的寻路的算法,今天改了改,改成实际的连线路径,因为有2位说过寻路路径太不顺眼; 关于源码: 我相信真正的开发人员是不屑一顾的,毕竟这些只是...
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章