PTA作业第一部分
6-7 删除字符串中数字字符(10 分)
删除一个字符串中的所有数字字符。
函数接口定义:
void delnum(char *s);
其中 s
是用户传入的参数。 函数的功能是删除指针 s
所指的字符串中的所有数字字符。
裁判测试程序样例:
#include "stdio.h"
void delnum(char *s);
int main ()
{ char item[80];
gets(item);
delnum(item);
printf("%s\n",item);
return 0;
}
/* 请在这里填写答案 */
输入样例:
a0bc+d496df
输出样例:
abc+ddf
1.设计思路:
(1).题目算法描述
第一步:定义i,j 并初始化为0
第二步:遍历s
第三步:判断s中每个元素是否为数字如果是数字则覆盖此元素
第四步:将s的最后一个元素归零
(2).流程图
2.实验代码
void delnum(char *s)
{
int i = 0,j = 0;
while(s[i] != ‘\0‘) {
if (!(s[i] >= ‘0‘ && s[i] <= ‘9‘)) {
s[j++] = s[i];
}
i++;
}
s[j] = ‘\0‘;
}
2.错误调试
无
答案正确
6-8 统计子串在母串出现的次数(10 分)
编写一个函数,该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asdasasdfgasdaszx67asdmklo,字符串为:asd,则应输出n=4。。
函数接口定义:
int fun(char *str,char *substr);
其中str
和 substr
是用户传入的参数。函数统计substr
指针所指的字符串在str
指针所指的字符串中出现的次数,并返回次数。
裁判测试程序样例:
#include<stdio.h>
int fun(char *str,char *substr);
int main()
{ char str[81]="asdasasdfgasdaszx67asdmklo",substr[4]="asd";
int n;
n=fun(str,substr);
printf("n=%d\n",n);
return 0;
}
/* 请在这里填写答案 */
输出样例:
n=4
1.设计思路:
(1).题目算法描述
第一步:定义i,j , k, n并初始化为0
第二步:从母串开始遍历
第三步:母串的每个字符串与子串进行比较
第四步:当子串遍历完的时候统计次数用的n加一
第五步:返回n
(2).流程图
略
2.实验代码
int fun(char *str,char *substr)
{
int i=0,j=0,k=0,n=0;
for(i=0;str[i]!=‘\0‘;i++)//从母串开始遍历
{
for(j=i,k=0;str[j]==substr[k];j++,k++)//每次遍历的当前字符串都要和子串的第一个字符进行比较把子串遍历完次数加一
{
if(substr[k+1]==‘\0‘)
{
n++;
}
}
}
return n;
}
2.错误调试
无
答案正确
简易量化付出表格
日期 | 代码行数 | 代码时间(min) | 博客字数 | 博客时间(min) |
3/26 | 44 | 35 | 715 | 80 |