C语言的作业,求帮忙!! 10
一、题目从键盘输入字符串,字符串中含大写字母,小写字母,及其它字符。编写程序将大写字母、小写字母、其它字符按顺序分离并分别保存在3个字符数组中,原字符数组保持不变。然后对...
一、 题目
从键盘输入字符串,字符串中含大写字母,小写字母,及其它字符。编写程序将大写字母、小写字母、其它字符按顺序分离并分别保存在3个字符数组中,原字符数组保持不变。然后对3个字符数组中的字符按ascii码升序排序。要求如下:
(1) 用3个函数分别实现大写字母、小写字母及其它字符的分离,用1个函数实现字符的排序;
(2) 函数形式参数为指向字符的指针变量;
(3) 主函数中调用函数实现各种字符的分离及排序并显示原字符及3类分离排序后的字符。 展开
从键盘输入字符串,字符串中含大写字母,小写字母,及其它字符。编写程序将大写字母、小写字母、其它字符按顺序分离并分别保存在3个字符数组中,原字符数组保持不变。然后对3个字符数组中的字符按ascii码升序排序。要求如下:
(1) 用3个函数分别实现大写字母、小写字母及其它字符的分离,用1个函数实现字符的排序;
(2) 函数形式参数为指向字符的指针变量;
(3) 主函数中调用函数实现各种字符的分离及排序并显示原字符及3类分离排序后的字符。 展开
展开全部
#include<stdio.h>
#include<string.h>
#define N 255
void separateUpper(char *src,char *dest)
{
int i,j;
i=j=0;
while(src[i] != '\0'){
if(src[i]>='A' && src[i]<='Z'){
dest[j++]=src[i];
}
i++;
}
dest[j]='\0';
}
void separateLower(char *src,char *dest)
{
int i,j;
i=j=0;
while(src[i] != '\0'){
if(src[i]>='a' && src[i]<='z'){
dest[j++]=src[i];
}
i++;
}
dest[j]='\0';
}
void separateOther(char *src,char *dest)
{
int i,j;
i=j=0;
while(src[i] != '\0'){
if(!((src[i]>='a' && src[i]<='z') || (src[i]>='A' && src[i]<='Z'))){
dest[j++]=src[i];
}
i++;
}
dest[j]='\0';
}
//冒泡排序(升序)函数
void sort(char *str)
{
int i,j,n;
char tmp;
n=strlen(str);
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
{
if(str[j] > str[j+1])
{
tmp=str[j];
str[j]=str[j+1];
str[j+1]=tmp;
}
}
}
int main()
{
char str[N],upper[N],lower[N],other[N];
printf("输入字符串: ");
scanf("%s",str);
separateUpper(str,upper);
separateLower(str,lower);
separateOther(str,other);
sort(upper);
sort(lower);
sort(other);
printf("输出原字符串: %s\n",str);
printf("输出大写字符: %s\n",upper);
printf("输出小写字符: %s\n",lower);
printf("输出其他字符: %s\n",other);
return 0;
}
//示例运行结果
F:\c_work>a.exe
输入字符串: Absc!@DEFG#$%^NJGhjkkd123.org.com!
输出原字符串: Absc!@DEFG#$%^NJGhjkkd123.org.com!
输出大写字符: ADEFGGJN
输出小写字符: bccdghjkkmoors
输出其他字符: !!#$%..123@^
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询