社区
C++ 语言
帖子详情
string.assign产生异常后string=""会有什么后果?
Soft_micro
2006-06-22 03:53:43
string str("aaa");
str.assign(str,str.find('b'),str.length());
str = "";
...全文
458
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
打赏
举报
回复
没人知道?
C++
string
assign
()赋值常用方法
C++
string
assign
()赋值常用方法 函数
assign
()常用在给
string
类变量赋值. 常用方法有: 1,直接用另一个字符串赋值. 如str2.
assign
(str1);即用str1给str2赋值. 2,用另一个字符串的一个子串赋值 如...
c++
string
的详细用法(1)
assign
()
//字符串变量
string
a="123";
string
b="456"; 1.字符串直接赋值 a.
assign
(b); //等于a=b赋值,结果为 a="456" a.
assign
("789");...//从字符串b的第(begin)个字符开始向后数(len)个字符(包括begin)...
c++中
string
的
assign
方法使用
string
的实际.h和.cpp文件是basic_
string
.h 和basic_
string
.tcc,所以
string
中
assign
也在这两个文件声明和定义; 1.
assign
的声明: basic_
string
&
assign
(const basic_
string
& __str) basic_...
MybatisPlus 主键策略(type=IdType.
ASSIGN
_ID等详解)
我们可以通过@TableId注解的类型属性来设置主键id的增长策略,一共有几个多个主键策略,可根据情况自由配置。 1,
ASSIGN
_ID(雪花算法) 如果不设置类型值,默认则使用IdType.
ASSIGN
_ID策略(自3.3.0起)。该...
C++ 字符串的赋值(
string
.
assign
)
【代码】C++ 字符串的赋值(
string
)
C++ 语言
64,661
社区成员
250,508
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章