用C++写一个函数,将其中的\t都转换成4个*

#include <iostream>
using namespace std;
bool change(char* const buf, int buf_len){
    
int str_len =strlen(buf);
    
int cnt_tab = 0;
    
for (int i = 0; buf[i] != '\0'; i++){
        
if (buf[i] == '\t')
            cnt_tab
++;
    }

    
int new_len=str_len+3*cnt_tab;
    
if (buf_len < new_len+1)
        
return false;
    
while (cnt_tab > 0){
        
if(buf[str_len]!='\t'){
            buf[new_len
--]=buf[str_len--];
        }

        
else{
            
for(int i=0;i<4;i++){
                buf[new_len
--]='*';
            }

            str_len
--;//be careful!!!!!!!
            cnt_tab--;
        }

    }

    
return true;
}


int main()
{
    
char buf[100= "1\t23\tba";
    
if (change(buf,sizeof(buf)/sizeof(char)))
        cout 
<< buf << endl;
    
else
        cout
<<"buf长度不够不能转换!"<<endl;
    system(
"pause");
    
return 0;
}

posted on 2011-06-04 14:04 Hsssssss 阅读(100) 评论(0)  编辑 收藏 引用 所属分类: C++代码


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿

文章分类

文章档案

收藏夹

搜索

最新评论