编写一个函数int fun(char a[ ],char b[]),其功能是:删除a指向的字符串中所有数字字符并将至保存到b数组
发布网友
发布时间:2023-07-13 16:49
我来回答
共1个回答
热心网友
时间:2023-09-13 06:39
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//如果返回-1,a字符串中没有数字
int fun(char a[], char b[])
{
int num=-1;
int ib=0;
char *p=a;
int isfirst=1;//是否为非数字字符第一行
while(*p)
{
if(*p >= '0' && *p <= '9')
{
b[ib] = *p;
ib++;
//删除a的内容或者替换'\n'
if(isfirst || *(p-1) == '\n')
{
strcpy(p, p+1);
p--;
}
else
{
*p = '\n';
}
}
else
{
isfirst=0;
}
p++;
}
b[ib] = 0;
if(ib > 0)
{
num = atoi(b);
}
//写入结果文件myfile.out
FILE *fp=fopen("myfile.out", "w");
fprintf(fp, "a=%s\n", a);
fprintf(fp, "b=%s\n", b);
fprintf(fp, "num=%d\n", num);
fclose(fp);
return num;
}
int main()
{
char a[]="48CTYP9R6";
char b[16];
int num=0;
num=fun(a, b);
printf("a=%s\n", a);
printf("b=%s\n", b);
printf("num=%d\n", num);
return 0;
}