本文主要是介绍数字与字母乱序输入a34b56c7777d8,数字在前字母在后输出345677778abcd,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
// 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 movestr(char *str){bool flag=false;int i;for(i=0;i<strlen(str)-1;i++){if((('a'<=str[i]&&str[i]<='z')||( 'A'<=str[i] &&str[i]<='Z')) && (0<=str[i+1]-'0' && str[i+1]-'0'<=9)){前面的是字母且后面的是数字,再处理//swap(str[i],str[i+1]);/数组元素直接做实参,传递引用,要用*pointchar temp; 用或不用这个swap()均可temp = str[i];str[i]=str[i+1];str[i+1]=temp;//swap(a,b);//flag=true;}}if(flag==false){cout<<"移动后的字符串是:"<<str<<endl;}else{movestr(str);/第一遍可能不完全,可能有*b没处理,需要递归}
}//for
int _tmain(int argc, _TCHAR* argv[])
{char str[] = "a34b56c7777d8";int i;//for(i=0;i<strlen(str);i++){// if(0<=str[i]&&str[i]<=9){结果为空,char 与int在一起比较 char升级为int ,这里条件是:str[i]的ASCII在0-9之间// cout<<str[i]<<endl;// }//}///----------------------// for(i=0;i<strlen(str);i++){// if(0<=str[i]-'0'&&str[i]-'0'<=9){结果为空,char 与int在一起比较 char升级为int ,这里条件是:str[i]的ASCII在0-9之间// cout<<str[i];12345677778请按任意键继续. . .// }//}///----------------------//for(i=0;i<strlen(str);i++){//if(48<=str[i]&&str[i]<=57){结果为空,char 与int在一起比较 char升级为int ,这里条件是:str[i]的ASCII在0-9之间//cout<<str[i];12345677778请按任意键继续. . .//}///----------------------// cout<<str[0]<<endl; ///1//for(i=0;i<strlen(str);i++){// if(('a'<=str[i]&&str[i]<='z')||( 'A'<=str[i] &&str[i]<='Z') ){// cout<<str[i];// } //输出 abcd//}///----------------------movestr(str);system("pause");return 0;
}
//移动后的字符串是:345677778abcd
//请按任意键继续. . .
这篇关于数字与字母乱序输入a34b56c7777d8,数字在前字母在后输出345677778abcd的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!