IOS开发之路-C 学习笔记7.14

星期天          阴



今天起的很晚,11点到机房便一直没出来.

先是玩了阵子网页游戏.简直让我欲罢不能.还好最后还是拜托出来了.

记录下今天写的.

首先是根据用户输入的一串字符串,来统计小写英文,大写英文,数字的个数,并且进行从下到大的顺序输出排序。并且排除相同的字符.

由于我英文太烂,变量名起的太低级...

上码:

//
//  main.c
//  getChars
//
//  Created by X's on 13-7-14.
//  Copyright (c) 2013年 X‘s. All rights reserved.
//

#include <stdio.h>
#include <string.h>
    int c_count = 0 ;
    int i_count = 0 ;
    int C_count = 0 ;
    int o_count = 0 ;
    char str[100];
    int len  = 0;
    char i_str[100];
    char c_str[100];
    char C_str[100];
void getStr()
{
    printf("请随便输入一段字符串:");
    scanf("%s",str);
    len = (int)strlen(str);
}
void get_cstr(char c[len])
{
    char min = 0;
    printf("小写排序后:");
    for(int i=0;i<len-1;i++)
    {
        min = i;
        for(int j=i+1;j<len;j++)
        {
            char temp =0;
            if(c_str[min]>c_str[j])
            {
                min = j;
            }
            if(c_str[min]==c_str[j])
            {
                c_str[j]='\0';
            }
            temp = c_str[i];
            c_str[i] = c_str[min];
            c_str[min] =temp;
        }
    }
    for(int i=0 ; i<len;i++)
    {
        if(c_str[i]>='a' && c_str[i]<='z')
        {
            printf("%c",c_str[i]);
        }
        if(i==len-1)
        printf("\n");
    }
}
void get_Cstr(char c[len])
{
    char min = 0;
    printf("大写排序后:");
    for(int i=0;i<len-1;i++)
    {
        min = i;
        for(int j=i+1;j<len;j++)
        {
            char temp =0;
            if(C_str[min]>C_str[j])
            {
                min = j;
            }
            if(C_str[min]==C_str[j])
            {
                C_str[j]='\0';
            }
            temp = C_str[i];
            C_str[i] = C_str[min];
            C_str[min] =temp;
        }

    }
    for(int i=0 ; i<len;i++)
    {
        if(C_str[i]>='A' && C_str[i]<='Z')
        {
        printf("%c",C_str[i]);
        }
        if(i==len-1)
            printf("\n");
    }
}
void get_istr(char c[len])
{
    int min = 0;
    printf("数字排序后:");
    for(int i=0;i<len-1;i++)
    {
        min = i;
        for(int j=i+1;j<len;j++)
        {
            char temp =0;
            if(i_str[min]>i_str[j])
            {
                min = j;
            }
            if(i_str[min]==i_str[j])
            {
                i_str[j]='\0';
            }
            temp = i_str[i];
            i_str[i] = i_str[min];
            i_str[min] =temp;
        }
    }
    for(int i=0 ; i<len;i++)
    {
        if(i_str[i]>='0' && i_str[i]<='9')
        {
            printf("%c",i_str[i]);
        }
        if(i==len-1)
            printf("\n");
       
    }
}
void getChars()
{
    //gets(str);
    getStr();
    if(len<100)
    {
        for(int i=0 ; i<len ; i++)
        {
            if(str[i]>='a' && str[i]<='z')
            {
                c_count++;
                c_str[i] = str[i];
            }
            else if(str[i]>='A' && str[i]<= 'Z')
            {
                C_count++;
                C_str[i] = str[i];
            }
            else if(str[i]>='0' && str[i]<='9')
            {
                i_count++;
                i_str[i] = str[i];
            }
            else
            {
                o_count++;
            }
        }
        get_cstr(c_str);
        get_Cstr(C_str);
        get_istr(i_str);
        printf("小写字母:%d \t 大写字母:%d \t 数字:%d \t 其他字符:%d",c_count,C_count,i_count,o_count);
    }
    else
    {
        getChars();
    }
}
int main(int argc, const char * argv[])
{
    getChars();
}

2.从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入

0123.456,返回值为整数有效位数为3)

void num_Count()
{
    double d_num = 0.0 ;
    int    n_num = 0 ;
    int    count = 1 ;
    printf("请输入一个数:");
    scanf("%lf",&d_num);
    n_num = (int)d_num;
    while (n_num>=10)
    {
        count++;
        n_num = n_num/10;
    }
    printf("有效整数为:%d",count);
}

3.10进制转化为其他进制


void convert()
{
    int sets = 0 ;
    int num_10 = 0;
    int num[20];
    int count = 0 ;
    int ram = 0 ;//余数
    printf("10进制转换为其他进制工具\n");
    printf("请输入要转换的10进制数:");
    scanf("%d",&num_10);
    
    printf("请选择你要转换的进制:\n1.2进制 \t2.8进制\n");
    scanf("%d",&sets);
    if(sets==1)
    {
        while (num_10!=0)
        {
            ram = num_10%2;
            num_10 = num_10/2;
            num[count] = ram;
            count++;
        }
        printf("转换为2进制后:");
        if(count%4!=0)
        {
            for(int i=count;i<count+(4%count);i++)
            {
                num[i]=0;
            }
            for(int i=(count+(4%count)-1);i>=0;i--)
            {
                printf("%d",num[i]);
                if(i%4==0)
                    printf(" ");
            }
        }
        else
        {
            for(int i=(count+(4%count)-1);i>=0;i--)
            {
                printf("%d",num[i]);
                if(i%4==0)
                    printf(" ");
            }
        }

    }
    else if(sets == 2)
    {
        while (num_10!=0)
        {
            ram = num_10%8;
            num_10 = num_10/8;
            num[count] = ram;
            count++;
        }
        printf("转换为8进制后:");
        if(count%4!=0)
        {
            for(int i=count;i<count+(4%count);i++)
            {
                num[i]=0;
            }
            for(int i=(count+(4%count)-1);i>=0;i--)
            {
                printf("%d",num[i]);
                if(i%4==0)
                    printf(" ");
            }
        }
        else
        {
            for(int i=(count+(4%count)-1);i>=0;i--)
            {
                printf("%d",num[i]);
                if(i%4==0)
                    printf(" ");
            }
        }

    }
    else
    {
        printf("您输入的有误!");
    }
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值