/*
*从字符串中提取连续的字符数字转换为整数
*/
#include<stdio.h>
#include"string.h"
void main()
{
char c[100];
bool find=false;
int sum[30],num[50],i=0,l,s=0,N=1,g=0;
printf("请输入一含有数字的字符串:\n");
gets(c);
l=strlen(c);
while(true)//判断字符串中是否有字符数字,有则执行下一步,没有则重新输入
{
while(l)
{
if(c[l]>='0'&&c[l]<='9')//判断是否含有数字字符
{
find=true;
break;
}
l--;
}
if(find)
break;//有数字则退出循环
else
printf("没有数字!!! 请重新输入:\n");
gets(c);//没有则重新出入
l=strlen(c);
}
l=strlen(c);
printf("字符串长度为:%d\n",l);
for(i=0;i<l;i++)//转换为数字
{
if((c[i]>='0')&&(c[i]<='9'))
{
sum[s++]=c[i]-48;//单个字符数字转换为数字
N*=10;
if(c[i+1]<='0'||c[i+1]>='9'||c[i+1]=='\0')//判断下一个字符是否为字符数字,不是则执行下一步,即是否是一个连续的数
{
num[g]=0;
N/=10;
for(int j=0;j<s+1;j++)//连起来的数字转为一个整数
{
sum[j]*=N;
N/=10;
num[g]+=sum[j];
}
g++;//记录字符串中数字串的个数
s=0;//用于sum[30]重新存储下个字符数字
N=1;//用于字符数字转为数字
}
}
}
printf("字符中的数字个数有%d个\n",g);
printf("字符中的数字分别为:\n");
for(i=0;i<g;i++)//输出结果
printf("%d\t",num[i]);
printf("\n");
getchar();getchar();
printf直接输出数字}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论