如何去掉字符串的最后一个字符

hotmail2 2008-02-29 04:20:24
我有一个字符串,想把字符串的最后一个字符去掉,该怎么做呢?
比如:
string str="adcd";
char *tmp = (char*)str.c_str(); //转换成char *,好用strlen这个函数
len=strlen(tmp);//取得字符串的长度
然后呢???
我找不到从字符串取固定长度的函数,请指教?
或者还有更简单些的方法??
...全文
462 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlong610 2009-05-29
  • 打赏
  • 举报
回复
因为求字符串指针长度用的是strlen(str)吧,求字符串长度可以用str.length
visame 2008-03-01
  • 打赏
  • 举报
回复

怎么可能没有length()啊。。。下面是标准的例子。
// string::length
#include <iostream>
#include <string>
using namespace std;

int main ()
{
string str ("Test string");
cout << "The length of str is " << str.length() << " characters.\n";
return 0;
}
hotmail2 2008-03-01
  • 打赏
  • 举报
回复
谢谢了,最后我用了str.erase,str.Length不行,说是不属于基本的string类里面的。
visame 2008-03-01
  • 打赏
  • 举报
回复
char *tmp = (char*)str.c_str(); //转换成char *,好用strlen这个函数
这个也太恐怖了吧。。居然把const给转换没了。
最好别这么用。
str[str.length()-1]='\0';其实就可以了。
lyle3 2008-02-29
  • 打赏
  • 举报
回复
好多方法~~~
ttkk_2007 2008-02-29
  • 打赏
  • 举报
回复

2楼不就是你想要的后面的方法吗
string str = "sdfo";
cout << str << endl;
str.erase(str.size() - 1);
cout << str << endl;
HelloDan 2008-02-29
  • 打赏
  • 举报
回复
如果用迭代器的话,可以这样。
str.erase(p); // Erase element refered to by iterator p
//
str.erase(b,e);
//Erase elements refered to by iterator b and e.
//
HelloDan 2008-02-29
  • 打赏
  • 举报
回复
str.erase(pos,len); //删除从pos开始的长度为len的字符。
HelloDan 2008-02-29
  • 打赏
  • 举报
回复
string 类的,有:str.size();//可得到长度。
lokii 2008-02-29
  • 打赏
  • 举报
回复
str.erase(str.length()-1);
ouyh12345 2008-02-29
  • 打赏
  • 举报
回复
string str = "abcd";
string str1 = str.substr(0, str.length() - 1);
shaoze5 2008-02-29
  • 打赏
  • 举报
回复
cahr str[]="adcd";
len=strlen(str);//取得字符串的长度
*(str + len-1) = '\0';
iu_81 2008-02-29
  • 打赏
  • 举报
回复
str = str.SubString(1, str.Length()-1);
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-02-29 04:20
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下