如何用c/c++把一个字符串把里边的数字提取出来

给定一个数字字符串,把这个串里边的连续数字提取出来放到另外一个整型数组中一个单元中,如"abc123v34ghajkg4568"把123放到b[0]中,34放到b[1]中,4568放到b[2]中。要求写一个函数实现数字的提取,函数的参数一个是指向字符串的指针,一个是指向整型数组的指针。

第1个回答  2010-09-13
#include <stdio.h>
void sort(int *a,int n);
int main()
{
char str[256];
int a[128];
char *p = NULL;
char *q = NULL;
int sum = 0;
int i = 0;
int j = 0;
int flag = 1;

puts("input the str:");
gets(str);

p = str;
while(*p != '\0')
{
if(*p > '9' || *p < '0')
p++;
else
{
q = p;
while(*p <= '9' && *p >= '0')
{
sum = sum * 10 + ((*p) - '0');
p++;
}
for(j=0; j<i; j++)
{
if(a[j] == sum)
flag = 0;
}
if(flag)
{
a[i++] = sum;
sum = 0;
}
else
{
flag = 1;
sum = 0;
}
}
}
//排序
sort(a,i);
//输出
for(j=0; j<i; j++)
{
printf("%d ",a[j]);
if((j+1)%10 == 0)
printf("\n");

}
puts("");
return 0;
}
void sort(int *a,int n)
{
int i,j,k,temp;
for(i=0; i<n-1; i++)
{
k = i;
for(j=i+1; j<n; j++)
{
if(a[k] > a[j])
{
k = j;
}
}
if(k != i)
{
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
}
仅供参考……
第2个回答  2020-05-16

我写个简单点的:

如何用c\/c++把一个字符串把里边的数字提取出来
给定一个数字字符串,把这个串里边的连续数字提取出来放到另外一个整型数组中一个单元中:include<iostream> include<string> using namespace std;void tiqu(char*a,int*b){ int j=0;bool key=false;for(int i=0;i<strlen(a);i++){ if(a[i]>='0'&&a[i]<='9'){ if(key)b[j] ...

C\/C++。怎么将字符串"1,2,3,4,5,6"里的整数获取出来存在整形数组里
可以用strtok函数,把逗号做为分隔符,将字符串分隔,再将分隔的数字字符串,转成整数,用atoi函数。include "stdio.h"#include "string.h"#include "stdlib.h" int main(){ char str[]="1,2,3,4,5,6"; int a[6]={0}; int i=0; char *tokenPtr=strtok(str,","); ...

如何使用C++提取出一个文件中的特定字符串里面的数字 数据例子如下_百度...
include<iostream>#include<fstream>#include<cstdio>#include<string>using namespace std;int main(){ ifstream in("e:\\\\test.txt"); if(!in) exit(-1); char str[50]; string sstr; while(!in.eof()) { memset(str,0,sizeof(str)); in.getline(str,50,'\\n'); char *ps...

c++中如何提取出一个字符串中的几个字符?
void main(){ char *str = "abdese";char e = str[3];printf("%c", e);} 字符串可以当数组用。

C\/C++中,字符串里提取数字?
先定义一个char nums[20];遍历str,如果是数字那就复制当前字符到nums,然后用atoi转换类型

在c++里怎样从字符串中提取出字符
include <string> include <stdio.h> main(){ int l=strlen(s);char ch;for(int i=0;i<l;i++){ if(strcmp(s[i],"a"))ch=s[i]} printf("%c",ch);}

...字符和非数字字符组成的字符串中的数字提取出来
int main(){char a[1000];int i=0;printf ("输入字符串:\\n");gets(a);printf("输出结果:\\n");while(a[i]){ if(a[i]>='0'&&a[i]<='9')printf("%c",a[i]);if(a[i]>='0'&&a[i]<='9'&&(a[i+1]<'0'||a[i+1]>'9')) \/*如果是最后一位数字,则换行*\/ ...

C++怎么从一行字符串中提取想要的数字,如m=45.5,D=0.15494,l=0.89989...
C++有很多从字符串中提取数值的办法,不同类型的程序、不同的开发环境都有不少办法。比较通用(但格式比较严格)的,是sscanf函数,从一个字符串中格式化提取整数、浮点数都没有问题。比如:char s[] = "m=45.5,D=0.15494";double m,d;sscanf(%*[^=]=%f,D=%f",&m,&d);...

1、C\/C++如何实现在一个指定的文件中,提取指定的数字?如我在stdafx.h...
很 简单 先用 strstr 找到那行 然后 提取出来 用sscanf进行解析 后面的数字不知道的也可以提取出来 可以用 %d 代替 好吧 我也用 string 和 fstream类 还有 getline

c++怎么提取字符串的一部分
C++的string常用截取字符串方法有很多,配合使用以下两种,基本都能满足要求:find(string strSub, npos);find_last_of(string strSub, npos);其中strSub是需要寻找的子字符串,npos为查找起始位置。找到返回子字符串首次出现的位置,否则返回-1;注:(1)find_last_of的npos为从末尾开始寻找的位置。(...

相似回答