第31课时,填空自测

1、编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述的结果。请将下面的程序补充完整。


#include<stdio.h>
#include<string.h>
#include<ctype.h>
void fltj(char str[], int a[])
{
    int ll,i;
    ll=strlen(str);
    for (i=0; i<ll; i++)
    {
        if ((str[i]>='A'&&str[i]<='z')||(str[i]>='a'&&str[i]<='z')) a[0]++;
        else if (str[i]>='0'&&str[i]<='9') a[1]++;
        else if (str[i]==' ') 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; str[i]!='\0'<span style="font-family: 'microsoft yahei';">; i++)</span>
        if (str1[i]!=ch)
        {
            str2[k]=str1[i];
            k++;
        }
    str2[i]='\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 (b[j]!='\0')
    {
        a[i]=b[j] ;
        i++ ;
        j++ ;
    }
    a[i]='\0';
    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; string[i]!='\0'; i++)
    {
        for (j=i,k=0; substring[k]==string[j]&&string[j]!='\0'; k++,j++);
            if (substring[k]=='\0')
                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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值