实现字符串移动。
例如char str[]=“AGAB%Sr67gs5ffwt+%” ,得到结果是"AABGS567grstw%%+"
1.1 先对字符串实现升序排序 voidSort(char *p,int n)
1.2 从字符串中挑出大写 char *DaXie(char *p,int n)
1.3 从字符串中挑出数字 char *ShuZi(char *p,int n)
1.4 从字符串中挑出小写 char *XiaoXie(char *p,int n)
1.5 从字符串中挑出特殊字符 char *TeShu(char *p,int n)
1.6 在主函数使用字符指针数组接收返回的字符串地址 char *p[4] p[0]
1.7 按照顺序,实现字符串连接
//head.h
#ifndef __HEAD_H__
#define __HEAD_H__
#include <stdio.h>
#include <string.h>
void Sort(char *p,int n);
char *DaXie(char *p);
char *ShuZi(char *p);
char *XiaoXie(char *p);
char *TeShu(char *p);
#endif
//fun.c
#include "head.h"
//对字符串升序
void Sort(char *p,int n)
{
char t;
for(int i=1;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
if(*(p+j)>*(p+j+1))
{
t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;
}
}
}
}
//从字符串中挑选大写字母
char *DaXie(char *p)
{
static char dx[10]="";
static char *q=dx;
int i=0,j=0;
while(*(p+i))
{
if(*(p+i)>='A'&&*(p+i)<='Z')
{
*(q+j)=*(p+i);j++;
}
i++;
}
*(q+j)='\0';
return q;
}
//从字符串中挑选数字
char *ShuZi(char *p)
{
static char dx[10]="";
static char *q=dx;
int i=0,j=0;
while(*(p+i))
{
if(*(p+i)>='0'&&*(p+i)<='9')
{
*(q+j)=*(p+i);j++;
}
i++;
}
*(q+j)='\0';
return q;
}
//从字符串中挑选小写
char *XiaoXie(char *p)
{
static char dx[10]="";
static char *q=dx;
int i=0,j=0;
while(*(p+i))
{
if(*(p+i)>='a'&&*(p+i)<='z')
{
*(q+j)=*(p+i);j++;
}
i++;
}
*(q+j)='\0';
return q;
}
//从字符串中挑选特殊字符
char *TeShu(char *p)
{
static char dx[10]="";
static char *q=dx;
int i=0,j=0;
while(*(p+i))
{
if(!((*(p+i)>='A'&&*(p+i)<='Z')||(*(p+i)>='a'&&*(p+i)<='z')||(*(p+i)>='0'&&*(p+i)<='9')))
{
*(q+j)=*(p+i);j++;
}
i++;
}
*(q+j)='\0';
return q;
}
//main.c
#include "head.h"
int main(int argc, const char *argv[])
{
char str[]="AGAB%Sr67gs5ffwt+%";
int n=strlen(str);
Sort(str,n);
puts(str);
char *p[4]={DaXie(str),ShuZi(str),XiaoXie(str),TeShu(str)};
char t[20]="";
for(int i=0;i<4;i++)
{
strcat(t,p[i]);
}
puts(t);
}