提示:以下是本篇文章正文内容,下面案例可供参考
一、题目
统计字符串中iu,ou,ea出现的次数放入数组ct中
二、思路
第一步
题意是在字符串中查找子串,由于三个字串都包含两个字符,所以在遍历母串的过程中,对相邻的两个字符于子符串中的字符比较,如果母串中的任意相邻的两个字符与子串相配,那么就将ct数组中的对应元素值累加1,需要注意遍历结束的标志为i。
三、代码实现
#include <stdio.h>
#include <string.h>
#pragma warning (disable:4996)
void fun(char*sp ,int *ct)
{
int i;
int len = strlen(sp);
for (i = 0; i < 3; i++)
{
ct[i] = 0;
}
for (i = 0; i < len - 1; i++)
{
if (sp[i] == 'e' && sp[i + 1] == 'a')
{
ct[0]++;
}
else if (sp[i] == 'o' && sp[i + 1] == 'u')
{
ct[1]++;
}
else if (sp[i] == 'i' && sp[i + 1] == 'u')
{
ct[2]++;
}
}
}
main()
{ void NONO();
char txt[200]="abeaeafeeaoukgdoouuoiouifwieeotiu";
int c[3];
fun(txt,c);
printf("%d,%d,%d\n",c[0],c[1],c[2]);
NONO();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int i, c[3] ;
char txt[200], *p ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fgets(txt, 200, rf) ;
p = strchr(txt, '\n') ;
if(p != NULL) *p = 0 ;
fun(txt,c);
fprintf(wf, "%d,%d,%d\n",c[0],c[1],c[2]);
}
fclose(rf) ; fclose(wf) ;
}