单词、字符串儿翻转,栈实现!
2016-02-04 16:32
357 查看
对字符串“this is very good”进行翻转,即“good very is this”。注意每一个单词仍是正序
思路:
1.字符串的翻转的问题。能够使用栈实现。
2.先把全部字符翻转,然后对再对某一个单词翻转,终于实现题目要求。
C语言代码例如以下:
先把简单的栈实现列出来:
详细的调用。
输出结果是:
this is very good
doog yrev si siht
good very is this
思路:
1.字符串的翻转的问题。能够使用栈实现。
2.先把全部字符翻转,然后对再对某一个单词翻转,终于实现题目要求。
C语言代码例如以下:
先把简单的栈实现列出来:
#ifndef dataStruct_myStack_h #define dataStruct_myStack_h #define kStacksize 100 typedef struct{ void* entity[kStacksize]; int top; }myStack; myStack* initStack(); void push(myStack* s,void* p); void* pop(myStack* s); void freeStack(myStack* s); #endif
#include <stdlib.h> #include "myStack.h" // myStack* initStack(){ myStack* s = (myStack*)malloc(sizeof(myStack)); memset(s->entity,0,sizeof(kStacksize)); s->top = -1; return s; } // void push(myStack* s,void* p){ if(s->top < kStacksize-1){ s->entity[++s->top] = p; } } // void* pop(myStack* s){ if (s->top>=0 && s->top < kStacksize) { return s->entity[s->top--]; } return NULL; } // void freeStack(myStack* s){ free(s); }
详细的调用。
int main { //0.输出原始字符串 char* str = "this is very good";printf("%s\n",str); char* reversal= (char*)calloc(1, 100); char* result= (char*)calloc(1, 100); int length=0; //1.翻转全部字符串 reverString(str,strlen(str),reversal); printf("%s\n",reversal); //2.翻转单词 char* index = reversal; char* reversalPtr = reversal; char* resultPtr = result; while (*index) { if (*index ==' ') { reverString(reversalPtr,length,resultPtr); reversalPtr= index+1 ; resultPtr += length; *(resultPtr++) = ' '; length = 0; } else { length++; } index ++; } //3.最后一个单词。翻转一下。 reverString(reversalPtr,length,resultPtr); printf("%s",result); //4.清理数据 free(reversal); reversalPtr=NULL; free(result); result=NULL; } void reverString(char* str,int length,char*buffer){ if (length<=0) { return; } myStack * stack = initStack(); int i=0; while (i<length) { push(stack,str); str++; i++; } //1.总体翻转过来 char* tmp; while (tmp =(char*)pop(stack)) { *buffer = *tmp; buffer++; } freeStack(stack); }
输出结果是:
this is very good
doog yrev si siht
good very is this
相关文章推荐
- KVM虚拟化笔记(八)------kvm虚拟机时间配置
- javaBean 相关知识
- Android Support Design 库 之 Snackbar使用及源码分析
- eclipse报错
- 消除app启动时的闪烁效果
- MySQL 入门 之 数据类型
- 【NLP】
- 网上图书商城项目学习笔记-031图书管理模块介绍及添加图书
- 程序在tomcat运行正常,但部署到websphere会启动失败(org.hibernate.InvalidMappingException: Could not parse mapping doc)
- spring activemq quartz 整合
- cvCompareHist() 直方图匹配
- HDU 1269 迷宫城堡(强连通分量):强连通图判定
- 工作小记
- AFNetworking 中 设置 https的SSL认证
- 数据挖掘总结之数据挖掘的过程
- 基于PetShop的数据可视化网站(一):基本结构
- RtlAnsiStringToUnicodeString function
- 5.MVC框架开发(强类型开发,控制器向界面传递数据的几种方法)
- Java泛型用法总结
- 介绍两个ios手机测试的辅助工具