将一个字符串按照单词逆转
2016-03-20 23:45
239 查看
#include <stdio.h> size_t _strlen(const char *str) { if(str==NULL || *str == '\0') return 0; size_t count = 0; while(*str++) { count++; } return count; } size_t _wordlen(const char * str) { if(str==NULL || *str == '\0') return 0; size_t count = 0; while(*str) { if(*str==' ') break; count++; str++; } return count; } void reverse_str(char* str,size_t t) { if(str==NULL || *str == '\0') return; char* p1=str; char* p2=str+t-1; while (p1<p2) { *p1=*p1^*p2; *p2=*p1^*p2; *p1=*p1^*p2; p1++; p2--; } } void reverse_words(char* str) { if(str==NULL || *str == '\0') return; reverse_str(str,_strlen(str)); reverse_str(str,_wordlen(str)); while (*str++) { if (*str == ' ') { reverse_str(str+1,_wordlen(str+1)); } } } void main(void) { char words[]="my name is g0;"; printf("%s\n",words); reverse_words(words); printf("%s\n",words); }
相关文章推荐
- 翘课老黄历——设计文档
- 学习笔记--window窗口
- c语言在gcc中编译时使用sqrt报错的解决
- 博文测试
- android多任务同时下载的简单实现
- 【iOS开发】从 UIWebView 到 WKWebView
- 20145301第三周学习总结
- Android开发初学者必看文档:Android开发规范
- jQuery.Deferred
- STL模板中的map的使用与例题
- python-highlight
- 简洁清爽的LaTeX论文模板
- C++ vector的排序------对于结构体vector, 需要自己实现比较
- 数据挖掘里面机器学习算法的讲解2
- Perl 5 中的三大OO特性
- sublime 插件
- python web编程中的WSGI协议
- 深入解析Python中函数的参数与作用域
- android多任务下载的状态更新
- 用MVC模式 code ListView