《C语言及程序设计》程序填空——字符数组与字符串处理

返回:贺老师课程教学链接

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

#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;
}

[参考解答](倒着看,就是不想让你舒舒服服地直接得到解答,真心希望你能有自己的解答。)

时间: 2024-09-13 13:04:38

《C语言及程序设计》程序填空——字符数组与字符串处理的相关文章

《C语言及程序设计》程序阅读——字符数组与字符串处理

返回:贺老师课程教学链接 阅读下面的程序,说出输出结果.与此同时,从一些程序中,学习处理问题的方法.对于理解不了的程序,请通过单步执行的方法进行观察,达到学会的目的.这一讲涉及的文字处理,是计算机应用广泛的一个领域,相关的方法,应该要学会. (1) #include <stdio.h> int main( ) { char b[]="ADCEBADEFG"; char *chp=&b[9]; while(--chp>&b[2]) putchar(*ch

《C语言及程序设计》实践项目——字符数组与字符串处理

返回:贺老师课程教学链接 [项目1-M$pszi$y是嘛意思?]背景:小明让同学传纸条给小丽.小丽接到会心一笑,大家却不知所云.纸条上写着M$pszi$y,两人暗中约定是,真实字符为实际字符前面的第4个!M$pszi$y是神马意思?推算一下,或从ASCII码表中查一下,自然是I love u.(1)小明请你写一个程序,在给小丽写情书时,再不用费功夫自己"翻译",原信中每一个字符加密为其后的第4个字符.例,输入I love u,输出M$pszi$y.(2)小丽请你写一个程序,在看小明的情

c语言字符数组与字符串的使用详解_C 语言

1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' ). 2.字符数组与字符串在c语言中,将字符串作为字符数组来处理.(c++中不是)在实际应用

c语言中向二维字符数组中写入符号*

问题描述 c语言中向二维字符数组中写入符号* 声明一个二维字符数组char str[][]: 通过循环嵌套向里面写入符号 * 怎么实现?求前辈指教. 解决方案 for (int i = 0; i < 100; i++) { arr[i / 10][u % 10] = ' '; } for (i =0; i < 10; i++) { arr[3][i] = '*'; arr[4][i] = '*'; arr[i][3] = '*'; arr[i][4] = '*'; } 解决方案二: 只要一行

Java中char数组(字符数组)与字符串String类型的转换方法_java

本文实例讲述了Java中char数组(字符数组)与字符串String类型的转换方法.分享给大家供大家参考,具体如下: 在Java语言编程时,使用"口令字段"jPasswordField组件时,如果要获得密码值,就需要使用该组件的getPassword()方法.jPasswordField的getPassword()方法返回一个char类型的数组,我们经常需要将这个数组转换为String类型,以便进行诸如口令匹配或口令赋值等操作.这时,就需要将char类型的数组进行转换.当然也经常会遇到

c++-编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。

问题描述 编程实现两字符串的连接.要求使用字符数组保存字符串,不要使用系统函数. 编程实现两字符串的连接.定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出.用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝. #include using namespace std; int main() { char a[500]; char b[500]; cin>>a; for(int i=0;i if(

指针-为啥C++字符数组存字符串出错?

问题描述 为啥C++字符数组存字符串出错? 代码如下: char *tupiandizhi[3]; for(int u=0; u<3 ; u++) { char ch2[30]; sprintf(ch2,"%s%d%s","d:sift(",u,").jpg"); tupiandizhi[u]=ch2; printf("%sn",tupiandizhi[u]); } printf("%sn",tupi

winform Base-64 字符数组或字符串的长度无效。

问题描述 下面是我用Base64转图片的时候报错提示错误:"Base-64字符数组或字符串的长度无效"///<summary>///Base64字符转成图像///</summary>///<paramname="base64String"></param>///<returns></returns>publicImageBase64ToImage(stringbase64String){//ba

C语言及程序设计提高例程-16 数组的引入

贺老师教学链接  C语言及程序设计提高 本课讲解 引子:求5位同学的平均成绩 #include <stdio.h> int main( ) { int a1, a2, a3, a4, a5; int total=0, ave; scanf("%d %d %d %d %d", &a1,&a2,&a3,&a4,&a5); total+=a1; total+=a2; total+=a3; total+=a4; total+=a5; ave=