金山笔试题-字符串排序 : 写一个函数,实现对给定的字符串(字符串里面包括:英文字母,数字,符号)的处理...
生活随笔
收集整理的這篇文章主要介紹了
金山笔试题-字符串排序 : 写一个函数,实现对给定的字符串(字符串里面包括:英文字母,数字,符号)的处理...
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ?寫一個函數(shù),實(shí)現(xiàn)對給定的字符串(字符串里面包括:英文字母,數(shù)字,符號)的處理。經(jīng)過處理后的字符串其內(nèi)容按字母,數(shù)字,符號的順序存放。函數(shù)聲明如下:
void?ParseString(char*?pstr);
要求:
a.??????不能改函數(shù)聲明;
b.??????不改變字母數(shù)字等在字符串中原有的出現(xiàn)順序;
c.??????直接使用pstr所值指緩沖區(qū),不允許另開緩沖區(qū)。
本來不會做,問了同學(xué)才知道用冒泡法,比較規(guī)則按類型比較
?
// maopao.cpp : 定義控制臺應(yīng)用程序的入口點(diǎn)。 //#include "stdafx.h" #include <iostream> #include <algorithm> #include <cstring> using namespace std;// 大于 1 等于0 小于 -1 int compare(char a,char b) {if(isalpha(a)){if(isalpha(b)){return 0;}else{return 1;}}else if(isdigit(a)){if(isalpha(b)){return -1;}else if(isdigit(b)){return 0;}else {return 1;}}else{if(isalpha(b) || isdigit(b)){return -1;}else {return 0;}}}void ParseString(char* pstr) {bool changed = false;int n = strlen(pstr);do { changed =false;for(int i=1;i<n;++i){if( compare(pstr[i-1],pstr[i])<0 ){changed =true;swap(pstr[i-1],pstr[i]);}}--n;} while (changed);}int _tmain(int argc, _TCHAR* argv[]) {char buf[] = "A,2.d?3!e4r87we79";ParseString(buf);printf("%s\n",buf);system("pause");return 0; }?
?
轉(zhuǎn)載于:https://www.cnblogs.com/snake-hand/archive/2013/06/08/3127590.html
總結(jié)
以上是生活随笔為你收集整理的金山笔试题-字符串排序 : 写一个函数,实现对给定的字符串(字符串里面包括:英文字母,数字,符号)的处理...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 熟悉 ASP.NET MVC 类
- 下一篇: VSS 错误链接