在main函数中创建一个文件,将键盘输入的字符串(该字符串只包含数字、字母和)写入文件中。打开该文件,读出字符串。将字符串中的数字放到最前面,字母放到中间,号放到最后,并将形成的新串存放到另一个文件中。比如,aC12d3,经变换为,123aCd**。
求解
你自己先写写啊,有错误给修改一下......直接要作业,那悬个赏吧
可以用acii码吧,忘了怎么拼了,直接比较是可以的,你可以试试,a是64 0好像是40多,你看看
供参考:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MaxLn 1024
void fw(char *str)
{
FILE *fp;
fp = fopen("tt.txt","w");
if (fp == NULL){
printf("File open fail!\n");
return;
}
fputs(str,fp);
fclose(fp);
}
void fr(char *buff)
{
FILE *fp;
fp = fopen("tt.txt","r");
if (fp == NULL){
printf("File open fail!\n");
return;
}
fgets(buff, MaxLn,fp);
fclose(fp);
}
void sort_alpha_digit(char *str)
{
char tmp;
int i, j, len = strlen(str);
for (i = len - 1;i > 0;i--){
for (j = 0;j < i;j++){
if (isalpha(str[j]) && isdigit(str[j+1])||
str[j] == '*' && str[j+1] != '*')
{
tmp=str[j];str[j]=str[j+1];str[j+1]=tmp;
}
}
}
}
int main()
{
char s[ MaxLn], buff[ MaxLn];
scanf("%s", s);
fw(s);
fr(buff);
sort_alpha_digit(buff);
puts(buff);
fw(buff);
return 0;
}