提取 字符串中 数字
来源:互联网 发布:初中全程辅导软件下载 编辑:程序博客网 时间:2024/05/16 16:00
#include<stdio.h>#include <stdlib.h>#include <string.h>void main(){ char c[100]; int find=0; int i=0,l;//' char te[50][50]; int flag=0,num=0;//行列 int stop=1;//是否为字母记号 int temp=0,mark=0;//行,列 printf("请输入一含有数字的字符串:\n"); gets(c); l=strlen(c); while(1)//判断字符串中是否有字符数字,有则执行下一步,没有则重新输入 { while(l) { if(c[l]>='0'&&c[l]<='9')//判断是否含有数字字符 { find=1; 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'|| c[i]=='.'|| c[i]=='-') { te[flag][num]=c[i]; num++; stop=0; te[flag][num]='\0'; if(c[i]=='-'&&c[i-1]>='0' && c[i-1]<='9') { te[flag][num-1]='\0'; flag++; te[flag][0]='-'; num=1; } } else if(stop==0) { te[flag][num]='\0'; flag++; num=0; stop=1; } te[flag][num]='\0'; } for(i=0;i<=flag;i++)//输出 { mark=0; for(temp=0;te[i][temp]!='\0';temp++) { if(te[i][temp]=='.') { printf("%f\n",atof(te[i])); mark=1; } } if(mark==0) printf("%d\n",atoi(te[i])); } }
以下为别人代码,非原创
地址:http://www.jb51.net/article/41046.htm
#include<iostream>using namespace std;int main(){ int a[30]={0}; char str[200]; cout<<"请输入一个含有数字的字符串\n"<<endl; cin>>str; bool flag=0; int i=0,j=0; int s=0; int num=strlen(str); cout<<"\n你一共输入了:"<<num<<"个字符"<<endl; for(i=0;i<num;){ while(str[i]>='0' && str[i]<='9' &&i<num ){ s=s*10+int(str[i])-int('0'); i++; flag=1; } if(flag==1){ a[j++]=s; s=0; flag=0; } i++; } i=0; cout<<"\n其中共"<<j<<"个数字\n"<<endl; while(i<j){ cout<<a[i]<<endl; i++; } cout<<endl; return 0;}
另一个
地址:http://wenku.baidu.com/view/416aa95f58f5f61fb636661d
#include<stdio.h>#include"string.h"#define false 0#define true 1void main(){ char c[100]; int find=0; int j; int sum[30],num[50],i=0,l,s=0,N=1,g=0; printf("请输入一含有数字的字符串:\n"); gets(c); l=strlen(c); while(1)//判断字符串中是否有字符数字,有则执行下一步,没有则重新输入 { while(l) { if(c[l]>='0'&&c[l]<='9')//判断是否含有数字字符 { find=1; 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(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();}
0 0
- 字符串中提取数字
- 字符串中提取数字
- 提取 字符串中 数字
- 字符串中提取数字
- 字符串中数字的提取
- 字符串中提取数字算法
- 从字符串中提取数字
- 从字符串中提取数字
- JS字符串中提取数字
- python提取字符串中数字
- 在字符串中提取数字
- JS字符串中提取数字
- Python 字符串中提取数字
- 从字母数字字符串中提取数字
- 从字母数字字符串中提取数字
- 提取字符串中为数字的字符串
- SQL 从字符串中提取数字
- C语言 从字符串中提取数字
- poj2376(贪心)
- 中缀式变为后缀式
- POJ 1330 Nearest Common Ancestors(LCA)
- DirectX11 多重纹理
- shiro学习(二) Realm
- 提取 字符串中 数字
- android PorterDuffXfermode、PorterDuff.Mode 使用
- linq排序
- 端口扫描基础
- 京东2016笔试题
- JAVA_配置篇
- 备份与恢复
- elasticsearch索引(多字段类型字段—字段可检索可聚合)
- HDU - 3535 AreYouBusy(混合背包)