#include<stdio.h>
#include<math.h>
int str_len(char* str);
void str_connect(char str[],char str2[]);
void str_copy(char str[], char str2[]);
void str_daxie(char str[]);
void str_xiaoxie(char str[]);
int str_number(char str[]);
char* number_str(int number);
int str_strcmp(char str[],char str2[]);
void get_str(int a)
{
char str[1000];
char str2[1000];
int number;
switch(a)
{
case 1:
printf("请输入字符串:\n");
scanf("%s",&str);
str_len(str);
break;
case 2:
printf("请输入第一个字符串:\n");
scanf("%s",&str);
printf("请输入第二个字符串:\n");
scanf("%s",&str2);
str_connect(str,str2);
puts(str);
break;
case 3:
printf("请输入第一个字符串:\n");
scanf("%s",&str);
printf("请输入第二个字符串:\n");
scanf("%s",&str2);
str_copy(str,str2);
break;
case 4:
printf("请输入第一个字符串:\n");
scanf("%s",&str);
printf("请输入第二个字符串:\n");
scanf("%s",&str2);
str_strcmp(str,str2);
break;
case 5:
printf("请输入第一个字符串:\n");
scanf("%s",&str);
str_daxie(str);
puts(str);
break;
case 6:
printf("请输入第一个字符串:\n");
scanf("%s",&str);
str_xiaoxie(str);
puts(str);
break;
case 7:
printf("请输入第一个字符串:\n");
scanf("%s",&str);
str_number(str);
break;
case 8:
printf("请输入第一个字符串:\n");
scanf("%d",&number);
number_str(number);
break;
case 9:break;
default:printf("你的输入有误,请重新输入!");break;
}
}
void show()
{
int x=0;
while(x!=9)
{
printf("1.字符串长度\n");
printf("2.字符串连接\n");
printf("3.字符串拷贝\n");
printf("4.字符串比较\n");
printf("5.字符串大写变小写\n");
printf("6.字符串小写变大写\n");
printf("7.字符串变数值\n");
printf("8.数值变字符串\n");
printf("9.退出系统\n");
printf("请选择[1/2/3/4/5/6/7/8/9]\n");
if(scanf("%d",&x)!=1)
{
printf("你的输入有误,程序将关闭...\n");
break;
}
get_str(x);
}
}
int str_len(char* str)
{
int count = 0;
while (*str++!= '\0')
{
count++;
}
printf("%d\n",count);
return count;
}
void str_connect(char str[],char str2[])
{
int size = str_len(str);
int i;
for (i = 0; i < size; i++)
{
str[i+size] = str2[i];
}
str[i + size] = '\0';
}
void str_copy(char str[], char str2[])
{
int size = str_len(str2);
int i;
for ( i= 0; i < size; i++)
{
str[i] = str2[i];
}
str[i] = '\0';
}
void str_daxie(char str[])
{
while (*str!= '\0')
{
if (*str >= 65 && *str <= 90)
{
*str = *str + 32;
}
str++;
}
}
void str_xiaoxie(char str[])
{
while (*str != '\0')
{
if (*str >= 97 && *str <= 122)
{
*str = *str - 32;
}
str++;
}
}
int str_number(char str[])
{
int size = str_len(str);
int i;
int number=0;
int number2;
for (i = 0; i < size; i++)
{
if (str[i] == 0)
{
continue;
}
number2 = str[i] - 48;
number += number2 * pow(10, size - i - 1);
}
return number;
}
char* number_str(int number)
{
int x=number,count=0;
while (x != 0)
{
x = x / 10;
count++;
}
int i;
char a[count],tmp;
for (i = 1; i <=count; i++)
{
x=pow(10,count-i);//求出数字有多少位
tmp=(number/x%10)+48;
a[i - 1] = tmp;
}
return a;
}
int str_strcmp(char str[],char str2[])
{
int i;
int size=str_len(str);
int size2=str_len(str2);
if(size>size2)
{
size=size;
}
else{
size=size2;
}
for(i=0;i<size;i++)
{
if(str[i]<str2[i])
{
return -1;
}
else if(str[i]=str2[i])
{
return 0;
}
else{
return 1;
}
}
}
int main()
{
show();
return 0;
}
字符串处理函数自定义
最新推荐文章于 2024-10-10 06:15:00 发布