首页 > 代码库 > 字符串操作

字符串操作

//求一句话里单词的个数 前面空格后面非空格 计数器加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 --sihtvoid 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--;    }}