例4 編寫一個函數(shù),用該函數(shù)可以統(tǒng)計一個長度為3的字符串在另一個字符串中出現(xiàn)的次數(shù)。例如,假定輸入字符中“the abcthe they have theren”,子字符串為“the”,則應輸出4。
注意:部分源程序在文件PRDE1.CPP中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在fun的花括號中填入編寫的若干語句。
部分源程序如下:
#include
#define MAX 100
int fun(char *str,char *substr);
int main()
{
char str[MAX],substr[4];
int n;
cout< <″please Input the source string\n″;
cin> >str;
cout< <″please Input the substring\n″;
cin> >substr;
n=fun(str,substr);
cout< <″The counter is:″< <&NBSP;
return 0;
}
int fun(char *str,char *substr)
{
//
}
分析: 本題是一道簡單應用題。
(1)本題主要考核考生對字符串指針或字符串數(shù)組的應用能力。函數(shù)fun的形參為兩個字符串的首地址。
(2)函數(shù)fun的功能是統(tǒng)計一個長度為3的字符串在另一個字符串中出現(xiàn)的次數(shù)。
(3)此函數(shù)可用一個循環(huán)體和if語句來實現(xiàn),依次判斷字符串substr中的值,找到第一個字符時,設一個計數(shù)器k,將k+1賦給k,如果substr中下一個元素是str中的第2個元素則將k自增,如果有連續(xù)3個字符與str中相同則將計數(shù)器n自增。
答案: 實現(xiàn)此函數(shù)功能的方式有多種,下面給出其中一種答案。
int fun(char *str,char *substr)
{
int n,z;
n=0;
for(z=0;str[z]!=′\0′;z+ +)
{
if((str[z]= =substr[0]&&(str[z+1]= =substr[1])&&(str[z+2]= =substr[2]))
nm+ +;
}
return (n);
}
相關鏈接:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |