返回:贺老师课程教学链接
1、编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述的结果。请将下面的程序补充完整。
2、有一行文字,要求删去某一个字符。此行文字和要删去的字符均由键盘输入,要删去的字符以字符形式输入(如输入a表示要删去所有的 a字符)。请补充完整下面的程序。
3、以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填空使程序完整。
4、下面的str_count函数计算串substring在母串string中出现的次数,并将次数返回。
[参考解答](倒着看,就是不想让你舒舒服服地直接得到解答,真心希望你能有自己的解答。)
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void fltj(char str[], int a[])
{
int ll,i;
ll=___(1)____
for (i=0; i<ll; i++)
{
if (___(2)____) a[0]++;
else if (___(3)____) a[1]++;
else if (___(4)____) a[2]++;
else a[3]++;
}
}
int main()
{
static char str[60];
static int a[4]= {0,0,0,0};
gets(str);
fltj(str,a);
printf("%s char:%d digit:%d space:%d other:%d",str,a[0],a[1],a[2],a[3]);
return 0;
}
2、有一行文字,要求删去某一个字符。此行文字和要删去的字符均由键盘输入,要删去的字符以字符形式输入(如输入a表示要删去所有的 a字符)。请补充完整下面的程序。
#include<stdio.h>
int main()
{
/*str1表示原来的一行文字,str2表示删除指定字符后的文字*/
char str1[100],str2[100];
char ch;
int i=0,k=0;
printf("please input an sentence:\n");
gets(str1);
scanf("%c",&ch);
for (i=0; ___(1)____; i++)
if (str1[i]!=ch)
{
str2[___(2)____]=str1[i];
k++;
}
str2[___(3)____]='\0';
printf("\n%s\n",str2);
return 0;
}
3、以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填空使程序完整。
#include<stdio.h>
int main ( )
{
char a[40]="Great ", b[ ]="Wall";
int i=0,j=0 ;
while (a[i]!='\0')
i++ ;
while (____(1)____)
{
a[i]=b[j] ;
i++ ;
j++ ;
}
____(2)____;
printf("%s\n",a);
return 0;
}
4、下面的str_count函数计算串substring在母串string中出现的次数,并将次数返回。
#include<stdio.h>
#include<string.h>
int str_count(char *string, char *substring)
{
int i,j,k;
int count=0;
for (i=0; ____(1)____; i++)
{
for (j=i,k=0; ____(2)____; k++,j++);
if (____(3)____)
count++;
}
return count;
}
int main ( )
{
char s1[]="This is a word \'iscaspe\'. No, is \'escape\'";
char s2[]="is";
printf("%d\n", str_count(s1, s2));
return 0;
}
[参考解答](倒着看,就是不想让你舒舒服服地直接得到解答,真心希望你能有自己的解答。)