星期天 阴
今天起的很晚,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("您输入的有误!");
}
}