| 热门文章 |
 |
|
| 编辑推荐 |
 |
|
|
|
|
|
作者:佚名
来源:不详 点击: 更新:2006-12-19
|
|
Q1:撰写下列函式,其引数为 string 类别
islower - 引数的内容为小写字母,删传回true isdigit - 引数的内容为数字,则传回 true isalphabetic - 引数的内容为大小写字母,则传回 true isaplhanumeric - 引数的内容为大小写字母或数字时 ,则传回 true
A1:须引入
bool islower(string &text) { for (unsigned int i=0;i { if((text[i] < 'a') || (text[i] >'z')) return false; } return true; }
bool isdigit(string &text) { for (unsigned int i=0;i { if((text[i] < '0') || (text[i] > '9')) return false; } return true; }
bool isaplhabetic(string &text) { for (unsigned int i=0;i { if( ((text[i] < 'A') || (text[i] >'Z')) && ((text[i] < 'a') || (text[i] >'z')) ) return false; } return true; }
bool isalphanumeric(string &text) { for (unsigned int i=0;i { if( ((text[i] < 'a') || (text[i] >'z')) && ((text[i] < 'A') || (text[i] >'Z')) && ((text[i] < '0') || (text[i] >'9')) ) return false; } return true; }
-------------------------------------------- Q2:撰写一函式可以判断两字串是否为异位字 ( 长度和字母相同,但顺序不同 )。
A2:须引入 、
bool anagram(string s1,string s2) { sort(s1.begin(),s1.end()); //将两字串排序,并比较是否相同 sort(s2.begin(),s2.end()); if (s1 == s2) return true; return false; }
-------------------------------------------- Q3:从输入流读入一文字档案,并计算单字个数和平均每个字的长度。
A3:须引入 、、 void main() {
string filename,buffer,word; //宣告变数 fstream file; //buffer 为资料缓区 int words=0,allchar=0; //word 为允许的英文字母 int start,end;
//以下为档案读取程序,此程式没有错误处理 cout << "请输入档案名称:"; cin >> filename;
file.open(filename.c_str()); while (!file.eof()) //读取资料圈 { char ch; file.get(ch); buffer += ch; } file.close();
//合法字母填入 for (int i=0;i<26;i++) { word += ('a'+i); word += ('A'+i); }
//以下为字母分析 int len = buffer.length(); start = buffer.find_first_of(word,0); //取得第一合法字母位置 while (start >=0 && start < len) //检查取得值是否正确 { end = buffer.find_first_not_of(word,start); //取得第一不合法字母位置 if (end < 0 && end > len) end = len; //检查取得值是否正确 allchar += (end-start); //加总字数 words++; //单字数加一 start = buffer.find_first_of(word,end++); //在取得下一个合法字母位置 } //从 end 後的位置开始 double average = double(allchar) / words; //型别转换 cout << "words = " << words << endl ; //印出 cout << "average = " << average << endl; } -------------------------------------------- Q4:以继承的方法,重载 " * " 运算子,使它的功能为--将字串重 n 次。例如 " this" * 3 为 "thisthisthis" 。
A4:须引入
class NString : public string { public:
NString operator * (unsigned int); };
NString NString::operator * (unsigned int n) { NString temp; while (n!=0) { temp [1] [2] 下一页
|
|
|