本文主要是介绍把**a*b**c***d**转换为**********abcd,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
// 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;///acout<<*str<<endl;///acout<<strlen(str)<<endl<<strlen(p)<<endl; ///10 10*///char *p=str;//char *q=str;//int i;//++p;p从1号元素往后指//cout<<strlen(p)<<endl;///9bool 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]);/数组元素直接做实参,传递引用,要用*pointflag=true;}}//forif(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
//请按任意键继续. . .
这篇关于把**a*b**c***d**转换为**********abcd的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!