zoukankan      html  css  js  c++  java
  • 【华软C语言实验报告】实验8 数组(2)

    实验8 数组(2)

    一、实验目的:
    1、理解字符数组的作用、特点;
    2、掌握字符数组、字符串的使用;
    3、熟悉打擂台等典型算法。

    二、实验内容

    1、(基础题)输入一个字符串,请编程统计其中的字母、数字、空格(含制表符)、标点符号的个数并输出。如下图所示:
    在这里插入图片描述
    (提示:(1)用字符数组存储字符串,数组长度定义为100.(2)在教材的p385-386中有字符和字符串函数,可以直接引用。如isalpha()判断字母函数、isdigit()判断数字函数、isspace()判断空格函数、ispunct()判断标点函数等)

    #include <stdio.h>
    #include <ctype.h>
    #include <string.h>
    int main()
    {
        char str[101];
        int i;
        int a[4]={0};
        printf("请输入一个长度不超过200的字符串: ");
        
        // fgets(str,101,stdin);
        gets(str);
        for(i=0;i<strlen(str);i++)
        {
            if (isalpha(str[i])!=0)a[0]++;
            if (isdigit(str[i]))a[1]++;
            if (isspace(str[i]))a[2]++;
            if (ispunct(str[i]))a[3]++;
        }
        printf("该字符串的字母个数、数字个数、 空格个数、标点个数分别为:");
        for(i=0;i<4;i++)
           printf("%d	",a[i]);
        return 0;
    }
    

    2、参考课件ppt,完成如下程序:由用户输入10个字符串,每个字符串长度不超过20个字符,要求找出其中的最小者。

    #include<stdio.h>
    #include<string.h>
    int main ( ){	char str[10][20];  
    	char min[20];       
    	int i;
    	printf("请输入10个字符串: 
    ");
    	for (i=0;i<10;i++)
    		gets(str[i]); 
        strcpy(min,str[0]); 
        for(i=1;i<10;i++)  
        {
            if (strcmp(str[i],min)<0)    
                strcpy(min,str[i]);  
        }      
    	printf("
    最小者是:%s
    ",min);
        return 0;
    }
    
    

    3(基础题)、参考冒泡排序.ppt,完成如下功能:由用户输入10个字符串,每个字符串长度不超过20个字符,要求10个字符串由小到大排序。
    解题思路:①用一维字符数组可以存放一个字符串,这里可定义一个二维字符数组来存放10个字符串;②排序可以用“冒泡”算法
    在这里插入图片描述
    在这里插入图片描述

    #include <stdio.h>
    #include <string.h>
    int main()
    {
        int i,j;
        char t[10];
    	char a[10][20]={''};
    	printf("输入10个字符串:
    ");
    	for (i=0;i<10;i++)
    		scanf("%s",&a[i]);
    	for (i=0;i<9;i++)
    		for (j=0;j<9-i;j++)
    		{
    			if (strcmp(a[j],a[j+1])>0)
    			{
    				strcpy(t,a[j]);
    				strcpy(a[j],a[j+1]);
    				strcpy(a[j+1],t);
    			}
    		}
        printf("排序后的字符串为:
    ");
        for (i=0;i<10;i++)
            printf("%s
    ",a[i]);
        return 0;
    }
    
    
    一键三连呀!
  • 相关阅读:
    MERGE INTO
    StringBuffer 去掉最后一个字符
    spring boot 在线项目创建
    centos rpm包下载地址
    maven 添加jdbc6
    初识算法----二分查找
    初识递归
    爬虫----抽屉新热榜
    python基础 字典
    0002 两数相加
  • 原文地址:https://www.cnblogs.com/jee-cai/p/14095203.html
Copyright © 2011-2022 走看看