码迷,mamicode.com
首页 > 其他好文 > 详细

字符串操作

时间:2014-08-06 01:29:40      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   for   ar   div   log   har   

//求一句话里单词的个数 前面空格后面非空格 计数器加1
//she is a good girl ====5个
int CountWords(char c[])
{
    int word=0;
    int sum=0;
    char *p=c;
    for (;*p!=\0;p++)
    {
        if (*p== )
        {
            word=0;
        }
        else if (word==0)
        {
            word=1;
            sum++;
        }
    }
    return sum;
}

//字符串逆序abcd ----dcba
//定义两个指针 一个在首 一个在尾 两个交换 
//然后都往中间移动 一直到有交叉
char *ReversStr(char *pStr)
{
    char *p=pStr;
    char *q=pStr;
    while (*q)
    {
        q++;
    }
    q--;//因为q指向了最后的‘\0‘所以要前移
    while(q>p)
    {
        char temp=*p;
        *p++=*q;
        *q--=temp;
    }
    return pStr;
}

//按单词逆序 
//she is a good girl 
//==girl good a is she
//第一步先对每个单词逆序
// ehs si a doog lrig
//第二步 对上面句子整体逆序
//具体由下面两个函数实现

//将一个字符串逆序 this --siht
void RevserseWord(char *first,char *last)
{
    while (first<last)
    {
        char temp=*first;
        *first=*last;
        *last=temp;
        first++;
        last--;
    }
}
//总函数
char *ReverseString(char *s)
{
    char *p=s;
    char *q=s;
    while (*q!=\0)
    {
        if (*q== )//只是反转到倒数第二个单词
        {
            RevserseWord(p,q-1);
            q++;//q指向下一个单词首字母
            p=q;//p移动向下一个单词首字母
        }
        else
            q++;
    }
    q--;
    RevserseWord(p,q);//最后一个单词调换顺序
    RevserseWord(s,q);
    return s;
}

//如何实现字符串的逆序打印
void ReversPrint(char *s)
{
    if (s==NULL)
    {
        cout<<"NO CHAR"<<endl;
        exit(0);
    }
    char *p=s;
    while (*p!=\0)
    {
        p++;
    }
    p--;
    while(p>=s)
    {
        cout<<*p;
        p--;
    }
}

 

字符串操作,布布扣,bubuko.com

字符串操作

标签:style   blog   color   for   ar   div   log   har   

原文地址:http://www.cnblogs.com/mu-tou-man/p/3893380.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!