正在加载图片...
else(1=curLen -maxLen; curLen maxLen; j for (=0;j<j++)ch[k++=rch1]: ∥连接替换串v到结果串ch后面 if( curLen = maxLen)break ∥字符串超出范围 for(=id+ tcurLen;j< temp. curLen; j++) emp.ch-d-. curLen]= temp. chl;删改原来的字符串 temp. curLen -(id IcurLen ) id=lemp.Find(t片 return *this 2-15编写一个算法∫ requency,统计在一个输入字符串中各个不同字符出现的频度。用适当的测试数 据来验证这个算法。 【解答】 统计算法 include <iostream. h> void frequency( Siring& s, char& A[ l, int& C[, int &k)i ∥s是输入字符串,数组A[中记录字符串中有多少种不同的字符,C[j中记录每 ∥一种字符的出现次数。这两个数组都应在调用程序中定义。k返回不同字符数 int i,j, len =s length( ) if( !len)i cout <<"The string is empty. <<endl; k=0; return;) else{4o]=s[0;Co]=1;k=1; 语句S团是串的重载操作啊 for(i=l; i< len; i++)C[=0; 初始化 for(i=l; i< len; i++)i 检测串中所有字符* whle(j<k&&=s)++;陣检查s是否已在A[]中* if(==k){A[=s{;C[k]++;k+ /s团从未检测过 else CU]++; /*s团已经检测过* 测试数据s=" cast cast sat at a tasal0 测试结果 【另一解答】 include " string. h const int charnumber 128 /ASCI码字符集的大小 ∥s是输入字符串,数组C[]中记录每一种字符的出现次数。 for( int i=0: i< charmumber; i++)C[=0; 初始化 for(i=0; i< s length(;i++ /检测串中所有字符* CL atoi(s团)]++; 出现次数累加*else { l = curLen - maxLen; curLen = maxLen; } for ( j = 0; j < l; j++ ) ch[k++] = v.ch[j]; //连接替换串 v 到结果串 ch 后面 if ( curLen == maxLen ) break; //字符串超出范围 for ( j = id + t.curLen; j < temp.curLen; j++ ) temp.ch[j- id - t.curLen] = temp.ch[j]; //删改原来的字符串 temp.curLen -= ( id + t.curLen ); id = temp.Find ( t ); } return *this; } 2-15 编写一个算法 frequency,统计在一个输入字符串中各个不同字符出现的频度。用适当的测试数 据来验证这个算法。 【解答】 统计算法 include <iostream.h> include "string.h" void frequency( String& s, char& A[ ], int& C[ ], int &k ) { // s 是输入字符串,数组 A[ ]中记录字符串中有多少种不同的字符,C[ ]中记录每 //一种字符的出现次数。这两个数组都应在调用程序中定义。k 返回不同字符数。 int i, j, len = s.length( ); if ( !len ) { cout << "The string is empty. " << endl; k = 0; return; } else { A[0] = s[0]; C[0] = 1; k = 1; /*语句 s[i]是串的重载操作*/ for ( i = 1; i < len; i++ ) C[i] = 0; /*初始化*/ for ( i = 1; i < len; i++ ) { /*检测串中所有字符*/ j = 0; while ( j < k && A[j] != s[i] ) j++; /*检查 s[i]是否已在 A[ ]中*/ if ( j == k ) { A[k] = s[i]; C[k]++; k++ } /*s[i]从未检测过*/ else C[j]++; /*s[i]已经检测过*/ } } } 测试数据 s = "cast cast sat at a tasa\0" A c a s t b C 2 7 4 5 5 【另一解答】 include <iostream.h> include "string.h" const int charnumber = 128; /*ASCII 码字符集的大小*/ void frequency( String& s, int& C[ ] ) { // s 是输入字符串,数组 C[ ]中记录每一种字符的出现次数。 for ( int i = 0; i < charnumber; i++ ) C[i] = 0; /*初始化*/ for ( i = 0; i < s.length ( ); i++ ) /*检测串中所有字符*/ C[ atoi (s[i]) ]++; /*出现次数累加*/ 测试结果
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有