string类字符串长度

yangbear111 2009-06-07 06:53:53
各位大虾,我先写了这样一段代码:
string a;
cout<<"请输入源代码: ";
cin>>a;
transform(a,strlen(a));
但是在函数调用的时候编译出问题:
error C2664: “strlen”: 不能将参数 1 从“std::string”转换为“const char *”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符


请问一下这个问题该如何解决?
...全文
195 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
_捕风捉影_ 2009-06-08
  • 打赏
  • 举报
回复
可以strlen(a.c_str())

我的技术主页:http://canaan.jimdo.com
c++爱好者QQ群:6776091
pengzhixi 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lingyin55 的回复:]
可以strlen(a.c_str())
[/Quote]
up
yangbear111 2009-06-08
  • 打赏
  • 举报
回复
谢谢,程序现在可以实现了
moon2008moon 2009-06-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lingyin55 的回复:]
可以strlen(a.c_str())
[/Quote]
正解
Trust_haitao365 2009-06-07
  • 打赏
  • 举报
回复
string是一个类,a是其中一个对象,调用length()方法得到其长度。
中才德创 2009-06-07
  • 打赏
  • 举报
回复
transform是两个参数的函数吗?
amossavez 2009-06-07
  • 打赏
  • 举报
回复
strlen只能用于c风格字符串,不能用于string,因为strlen是在遇到\0时结束判断的!!!用这个strlen(a.c_str())把string转换成c风格字符串
pysjp 2009-06-07
  • 打赏
  • 举报
回复
std string类有一个方法叫c_str()就是取出string对象的字符串,实现到char *的转换,楼主可以如下调用:

strlen(a.c_str());
lingyin55 2009-06-07
  • 打赏
  • 举报
回复
可以strlen(a.c_str())
liao05050075 2009-06-07
  • 打赏
  • 举报
回复
strlen是C的函数,string是C++的类。
q1q2q3q4ln 2009-06-07
  • 打赏
  • 举报
回复
a.length()
不能用strlen(a)用a.length()

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧