标签: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--; } }
标签:style blog color for ar div log har
原文地址:http://www.cnblogs.com/mu-tou-man/p/3893380.html