【设计型】7.8 删除字符串中指定的星号
假定输入的字符串中只包含字母和 * 号。请编写函数 fun ,它的功能是:除了尾部的 * 号之外 , 将字符串中其它 * 号全部删除。在编写函数时,不得使用 C 语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G******* ,删除后 , 字符串中的内容应当是:ABCDEFG******* 。
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
#include
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
void fun(char *p,char *q)
{
char *h,*j;
int k=0,i=0,z;
h=q+1;
for(; *h!='\0'; h++)
if(*h=='*') k++;
j=p;
for(; j<=q; j++)
if(*j!='*')
{
p[i]=*j;
i++;
}
for(z=0; z
p[i+z]='*';
p[z+i]='\0';
}
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
int main()
{
char s[81],*t;
gets(s);
t=s;
while(*t) t++;
t--;
while(*t=='*') t--;
fun( s , t );
puts(s);
return 0;
}
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
【设计型】7.9 统计数字字符
请编写函数 fun ,它的功能是: 统计形参 s 所指字符串中数字字符出现的次数,并存放在形参t中。
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
#include
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
void fun(char s[80],int *t)
{
int i;
*t=0;
for(i=0; s[i]!='\0'; i++)
if(s[i]>='0'&&s[i]<='9')
*t=*t+1;
}
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
int main()
{
char s[80];
int t;
gets(s);
fun(s,&t);
printf("%d\n",t);
return 0;
}
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
【设计型】7.10 将两个串按要求形成一个新串
给定程序的函数 fun 的功能是:逐个比较 p 、 q 所指两个字符串对应位置中的字符,把 ASCII 值大或相等的字符依次存放到 c 所指数组中,形成一个新的字符串。例如,若主函数中 a 字符串为: aBCDeFgH ,主函数中 b 字符串为:ABcd ,则 c 中的字符串应为: aBcdeFgH 。
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
#include
#include
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
void fun(char a[10],char b[10],char c[80])
{
int n,m;
m=strlen(a);
n=strlen(b);
if(m>n) m=n;
{
for(i=0; i
{
if(a[i]>b[i])
c[i]=a[i];
else c[i]=b[i];
}
/* PRESET CODE BEGIN - NE