【C语言】手动输入一串字符串,如“sa112sa2shz1.23x”,输出结果是11221.23
答案:3 悬赏:0
解决时间 2021-12-13 01:00
- 提问者网友:失败的占卜者
- 2021-12-12 11:29
【C语言】手动输入一串字符串,如“sa112sa2shz1.23x”,输出结果是11221.23
最佳答案
- 二级知识专家网友:飘零作归宿
- 2021-12-12 12:14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include
intmain(intargc,char*argv[]){
chars[50]="sa112sa2shz1.23x";
inti,t;
doublek;
for(i=0;s[i];i++)
if(s[i]>='0'&& s[i] sscanf(s+i,"%lf%n",&k,&t);
printf("%g ",k);
i+=(t-1);
}
printf("\n");
return0;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
#include
intmain(intargc,char*argv[]){
chars[50]="sa112sa2shz1.23x";
inti,t;
doublek;
for(i=0;s[i];i++)
if(s[i]>='0'&& s[i] sscanf(s+i,"%lf%n",&k,&t);
printf("%g ",k);
i+=(t-1);
}
printf("\n");
return0;
}
全部回答
- 1楼网友:猖狂的痴情人
- 2021-12-12 13:23
#include
#include
#include
#include
#define LEN 100
int main(int argc, char const *argv[])
{
int real_len;//字符串真实长度
char * s_save;
int i = 0;
int k = 0;
int is_blanked = 0;
char *s = (char *)malloc(LEN);
if(s == NULL)
{
printf("malloc failed\n");
return -1;
}
s_save = (char *)malloc(LEN);
if(s_save == NULL)
{
printf("malloc failed\n");
free(s);
return -1;
}
printf("输入字符串:");
scanf("%s",s);
real_len = strlen(s);//获取字符串长度
for (i = 0; i {
if(isdigit(s[i]))
{
s_save[k++] = s[i];
is_blanked = 0;
}
else
{
if((i>0)&&(s[i] == '.')&&(isdigit(s[i-1])&&isdigit(s[i+1])))//如果当前字符的前面一个字符和后面一个字符是数字,则保留字符.
{
s_save[k++]=s[i];
is_blanked = 0;
}
else
{
if (is_blanked == 0)
{
if(strlen(s_save) == 0)
{
s_save[k]=' ';//除此之外,用空格表示
}
else
{
s_save[k++] = ' ';
}
is_blanked = 1;
}
}
}
}
printf("%s\n",s_save);
free(s);
free(s_save);
return 0;
}
- 2楼网友:為→妳鎖鈊
- 2021-12-12 12:46
过滤取出数字和 .
再看看别人怎么说的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯