注册 登录
编程论坛 C++教室

关于字符串的问题(急)

choco1024 发布于 2008-10-22 14:25, 857 次点击
如果我想对一串字符退一格输出,那代码要怎么写啊?
比如:
#include "iostream"
#include "string"
using namespace std;
int main()
{
    string st1="1236.257";
    //如果我想输出st1=1236.25,那对于这个字符串操作该怎么写呀?
    return 0;
}
9 回复
#2
beyondlwm2008-10-22 15:07
printf("st1 = %s",st1);
#3
choco10242008-10-22 15:18
我知道,我问的输出时少输出一个字符,比如输入是123,输出时是12.
#4
beyondlwm2008-10-22 16:09
st1="1236.25";

printf ("%.3s\n",st1);
显示:123
#5
choco10242008-10-22 22:57
[bo][un]beyondlwm[/un] 在 2008-10-22 16:09 的发言:[/bo]

st1="1236.25";

printf ("%.3s\n",st1);
显示:123


如果是是随机输入的,开始时不知道它的长度呢?
#6
beyondlwm2008-10-23 09:26
strlen可以求长度。
#7
keanbin2008-10-23 10:30
#include <iostream>
#include <string>
#include <iomanip>

using namespace std;
void main()
{
    string s="jk";
    cout<<setw(5)<<s;
}
可以控制输出为5个字节,但是是不够5个字节,以空格填补,超过5个字节的,照原样输出。
这个不知道对你有没有帮助。你要求的,我现在还在想,我认为可以把字符串赋值给另一个string变量m,然后把这个变量m里面的最后一个字符删掉,然后再输出这个变量m,这样好像可以达到你要的效果吧!或者把字符串赋值到CHAR数组中  然后用for循环输出到最后一个之前为止。
希望可以帮到你!!


删除字符串的最后一个字符:
#include <iostream>
#include <string>
#include <iomanip>
//#include <algorithm>
using namespace std;
void main()
{
    string s="jkKKKJUIJ";
    string::iterator  it;
    it=s.end();  
    it--;        //it指向字符串的末尾
    s.erase(it); //删除it指向的字符
    cout<<s;
}
输出的结果为:jkKKKJUI

[[it] 本帖最后由 keanbin 于 2008-10-23 10:42 编辑 [/it]]
#8
God_WangY2008-10-23 20:09
ls
晕!\b不就完了么?
何必呢?
#9
zhangjun0390092008-10-23 20:25
用vector数组试下
#include〈vector〉;
vector〈string〉str(length);
这样应该可以根据实际数组大小来做,我是用手机上网,不能实际操作,要是不行我只能说抱歉了~
#10
choco10242008-10-24 21:06
/b,真好
1