编写一个函数findStr(),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为"as",函数返回值是6。
函数ReadWrite()实现从文件in.dat中读取两个字符串并调用函数findStr(),最后把结果输出到文件out.dat中。
注意:部分程序已经给出。
请勿改动主函数main()和其他函数中的任何内容,仅在函数findStr()的花括号中填入你编写的若干语句。
include <stdio.h>
include <string.h>
include <conio.h>
int findStr(char *str,char *substr)
{
}
main()
{
char str[81],substr[3];
int n;
clrscr();
printf("输入原字符串");
gets(str) ;
printf("输入子字符串:");
gets(substr);
puts(str);
puts(substr);
n=findStr(str, substr);
printf("n=%d\n", n);
ReadWrite();
}
ReadWrite()
{
char str[81],substr[3],ch;
int n, len,i=0;
FILE *rf, *wf;
rf=fopen("in.dat", "r");
wf=fopen("out.dat", "w");
while(i<25)
{
fgets(str, 80, rf);
fgets(substr, 10, rf);
len=strlen(substr)-1;
ch=substr[len];
if(ch=='\n' || ch==0xla)substr[len]=0;
n=findStr(str, substr);
fprintf(wf, "%dkn", n);
i++;
}
fclose(rf);
fclose(wf);
}
第1题:
编写一个函数findStr(char*str,char*substr),该函数统计一个长度为2的子字符串substr在另一个字符串str中出现的次数,该次数作为函数值返回。例如,假定输入的字符串为”asd asasdfg asd as zx67 asdmklo”,子字符串为”as”,函数返回值是6。 函数ReadWrite实现从文件in.dat中读取两个字符串,并调用函数findStr,最后把结果输出到文件out.dat中。 注意:部分源程序存在test.c文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数findStr的花括号中 填入你编写的若干语句。
第2题:
请编一个函数fun(char*str),该函数的功能是把字符串中的内容逆置。 例如,字符串中原有的字符串为asdfg,则调用该函数后,串中的内容为gfdsa。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。 试题程序:
第3题:
编写函数get_max,其功能是将字符串s中最大字符的地址返回,再编写一个主函数,调用该函数,将字符串s中从最大字符开始的子串中小写字母转换成大写字母,然后输出新字符串s。例如,假设s的内容为“qwertyou”,则从最大字符’y’开始的子串为“you”,处理后的s为“qwertYOU”。 函数形式为:char *get_max(char s[])
第4题:
下列给定程序中函数fun的功能是:统计substr所指的字符串在str所指的字符串中出现的次数。 例如,若字符串为aaas lkaaas,子字符串为as;则应输出2。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改的程序的结构!
第5题:
假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参P已指向字符串中最后一个字母。在编写函数时,不得使用C语言的字符串函数。 例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容应当是abcdefg****。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。 试题程序: