把**a*b**c***d**转换为**********abcd
2016-04-05 21:33
351 查看
// JIEFA_2.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; void swap(char *a,char *b){ char *temp; *temp=*a;*a=*b;*b=*temp; } //void swap(char a,char b){ // char temp; // temp=a;a=b;b=temp; //}////0xC00000FD: Stack overflow void movestr(char *str){ /* char *p=str; cout<<*p<<endl;///a cout<<*str<<endl;///a cout<<strlen(str)<<endl<<strlen(p)<<endl; ///10 ////10 */ //char *p=str; //char *q=str; //int i; //++p;////p从1号元素往后指 //cout<<strlen(p)<<endl;///9 bool flag=false; int i; for(i=0;i<strlen(str)-1;i++){ if(str[i]!='*'&&str[i+1]=='*'){ /////遇到a*就交换,遇到*a不处理 swap(str[i],str[i+1]);/////数组元素直接做实参,传递引用,要用*point flag=true; } }//for if(flag==false){ cout<<"移动后的字符串是:"<<str<<endl; }else{ movestr(str);/////第一遍可能不完全,可能有*b没处理,需要递归 } } int _tmain(int argc, _TCHAR* argv[]) { char str[] = "**a*b**c***d**";///*str = "**a*b**c***d**";这两个区别很大!要使用*str,swap()无效果 movestr(str); //swap(str[0],str[1]); //cout<<str; system("pause"); return 0; } //移动后的字符串是:**********abcd //请按任意键继续. . .
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- 如何组织构建多文件 C 语言程序(二)
- android上改变listView的选中颜色
- String.intern
- 如何写好 C main 函数
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- Lua和C语言的交互详解
- PostgreSQL ERROR: invalid escape string 解决办法
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- 使用C语言判断英文字符大小写的方法