自编字符、字符串处理函数
发现不了这个代码为什么不能运行,我感觉没错啊。。#include<stdio.h>
#include <stdlib.h>
void change(char str[]);
int bijiao(char str1[], char str2[]);
int fuzhi(char str3[], char str4[]);
int fun(char str5[100]);
int per(char *a);
int main()
{
int val;
int b,t,x,z;
long int x1;
int a1,b1=1,c1=0,y1;
int a2,b2=0,a3;
int i=1,sum=0;
int m=0,n=0;
char g,a4;
char a[100];
char str1[100], str2[100];
char str3[10],str4[10],str5[100];
char str6[100]={};char str7[100]={};
printf("1.将大写字母转换为小写字母\n");
printf("2.字符串比较\n");
printf("3.字符串复制\n");
printf("4.检查字符串是否为数字串,是返回1,否返回0\n");
printf("5.数字串(长度不大于8)转换为相应的数值,并进行四则运算\n");
printf("6.二进制转化为十进制\n");
printf("7.判断正整数是几位数\n");
printf("8.1-999中所有能被3和5整除的数的个数\n");
printf("9.判断能否同时被3和5整除\n");
printf("10.判断是否为英文字母\n");
do
{
printf("请选择命令:\n");
scanf("%d",&z);
if(x==1)
{
printf("请输入大写字母:");
gets(a);
change(a);
printf("输出小写字母:");
puts(a);
}
if(x==2)
{
printf("请输入要比较的字符串:");
gets(str1);
gets(str2);
if ((val = bijiao(str1, str2)) == 0)
printf("等于");
if (val< 0)
printf("小于");
if (val> 0)
printf("大于");
}
if(x==3)
{
printf("请输入字符串:");
scanf("%s", &str4);
fuzhi(str3, str4);
printf("目标串 : %s\n", str3);
}
if(x==4)
{
printf("请输入字符串:");
scanf("%s",str5);
t=fun(str5);
if(t==1)
printf("1\n");
if(t==-1)
printf("-1\n");
}
if(x==5)
{
printf("please input x:");
scanf("%s",str6);
printf("please input y:");
scanf("%s",str7);
m = per(str6);
n = per(str7);
printf("x=%d\n",m);
printf("y=%d\n",n);
printf("x+y=%d\n",m+n);
printf("x-y=%d\n",m-n);
printf("x*y=%d\n",m*n);
printf("x/y=%f\n",(float)m/(float)n);
}
if(x==6)
{
printf("请输入一个二进制数:");
scanf("%d",&x1);
y1=x1;
while(x1!=0)
{
a1=x1%10;
c1=c1+a1*b1;
b1=b1*2;
x1=x1/10;
}
printf("对应的十进制数为%d\n",y1,c1);
}
if(x==7)
{
printf("请输入一个正整数:");
scanf("%d",&a2);
while(a2>0)
{
a2=a2/10;
b2++;
}
printf("该正整数是几位数:%d",b2);
}
if(x==8)
{
for(i=1;i<=999;i++)
{
if(i%3==0&&i%5==0)
sum=sum+1;
else
sum=sum+0;
}
printf("1-999中所有能被3和5整除的数的个数=%d",sum);
}
if(x==9)
{
printf("a=");
scanf("%d",&a3);
if(a3%3==0&&a3%5==0)
printf("能同时被3和5整除");
else
printf("不能同时被3和5整除");
}
if(x==10)
{
printf("请输入字符:");
a4=getchar();
if((a4>='a' && a4<='z')||(a4>='A' && a4<='Z'))
printf("是英文字母\n");
else
printf("不是英文字母\n");
}
printf("是否终止运行?(YorN)");
getchar();
scanf("%c",&g);
}
while(g=='N');
return 0;
}
void change(char str[])
{
int i;
for (i = 0; str[i] != '\0'; i++)
if (str[i] >= 'A'&&str[i] <= 'Z')
str[i] += 32;
}
int bijiao(char str1[], char str2[])
{
int i;
for (i = 0; str1[i] != '\0'; i++)
{
if (str1[i]>str2[i])
return 1;
else if (str1[i]<str2[i])
return -1;
}
return 0;
}
int fuzhi(char str3[], char str4[])
{
int i = 0;
while (str3[i] = str4[i]) i++;
return 0;
}
int fun(char str5[100])
{
int i;
for (i = 0; i <= 100; i++)
{
if (str5[i] == 0)
{
return 1;
}
if ((str5[i] - '0') < 0 || (str5[i] - '0') > 9)
{
return -1;
}
}
return 1;
}
int per(char *a)
{
int n=0;
for(; *a; ++a)
n = n*10 + (*a-'0');
return n;
}