首页 > 代码库 > 字符串操作
字符串操作
//求一句话里单词的个数 前面空格后面非空格 计数器加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--; }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。