金山笔试题-字符串排序 : 写一个函数,实现对给定的字符串(字符串里面包括:英文字母,数字,符号)的处理...
生活随笔
收集整理的這篇文章主要介紹了
金山笔试题-字符串排序 : 写一个函数,实现对给定的字符串(字符串里面包括:英文字母,数字,符号)的处理...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ?寫一個函數,實現對給定的字符串(字符串里面包括:英文字母,數字,符號)的處理。經過處理后的字符串其內容按字母,數字,符號的順序存放。函數聲明如下:
void?ParseString(char*?pstr);
要求:
a.??????不能改函數聲明;
b.??????不改變字母數字等在字符串中原有的出現順序;
c.??????直接使用pstr所值指緩沖區,不允許另開緩沖區。
本來不會做,問了同學才知道用冒泡法,比較規則按類型比較
?
// maopao.cpp : 定義控制臺應用程序的入口點。 //#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; }?
?
轉載于:https://www.cnblogs.com/snake-hand/archive/2013/06/08/3127590.html
總結
以上是生活随笔為你收集整理的金山笔试题-字符串排序 : 写一个函数,实现对给定的字符串(字符串里面包括:英文字母,数字,符号)的处理...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 熟悉 ASP.NET MVC 类
- 下一篇: VSS 错误链接