C语言 将用户输入的字符串中的所有数字提取出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 将用户输入的字符串中的所有数字提取出来相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
void main()

char str[80],digit[80];
char *ps;
int i=0;
gets(str);
ps=str;
while(*ps!='\0')

if(*ps>='0'&&*ps<='9')

? ?
i++;

? ?

? ?
printf("%s\n",digit);

请问三个问号行应该怎么填。。为什么

#include<stdio.h>

#include<math.h>

#include<stdlib.h>

intmain()

intz=0;

intt,i;

int*p;

intm=0;

ints=0;

chara[10];//输入一个字符串到a[6]

printf("请输入一个字符串\\n");

scanf("%s",a);//输入字符串

for(i=0;i<10;i++)//计算a[6]中的数字个数

if(a[i]>='0'&&a[i]<='9')

m++;

if(m==0)

printf("字符串中没有数字\\n");

p=(int*)calloc(m,sizeof(int));//动态数组

for(i=0;i<10;i++)

if(a[i]>='0'&&a[i]<='9')

*(p+s)=a[i]-48;

s++;

//组成新的整数

for(t=0;t<m;t++)

z+=(*(p+t))*pow(10,m-(t+1));//组成新的整数

printf("新组成整数:%d\\n",z);

free(p);

kuo

扩展资料

C语言实现将字符串的数字提取为整数

#include<stdio.h>

intStringToInteger(char*p)

intvalue=0;

while(*p!='\\0')

if((*p>='0')&&(*p<='9'))

value=value*10+*p-'0';

p++;

returnvalue;

intmain(void)

char*str="112.123.156.1";

intval=0;

val=StringToInteger(str);

printf("value=%d\\n\\r",val);

getchar();

return0;

参考技术A

#include <stdio.h>

void main()

char str[80],digit[80];

char *ps;

int i=0;

gets(str);

ps=str;

while(*ps!='\\0')

if(*ps>='0'&&*ps<='9')

digit[i]=*ps;//若当前字符是数字字符,保存到digit【i】里面,并且i的下标加1i++;

ps++;//不管是不是,判断完当前的字符*ps之后,ps++,表示移动到下一个字符判断。

digit[i]='\\0';//给保存数字字符的字符数组加上个结束符号‘\\0’,因为printf(%s)是以'\\0'表示字符结束的。

提取字符串中数字,输出整型数:

while写法:

a='abc12d345'

i=0;

b=0;

while i<len(a):

if '0'<=a[i]<='9':

b=b*10+int(a[i])

i+=1;

print(b)

for写法:

a="abc12d345"

b=0;

for i in a:

if '0'<=i<='9':

b=b*10+ord(i)-48

print(b)

扩展资料:

提取字符串的数字:

将用户输入的字符串中的所有数字提取出来核心思想是每找到一个连续的数字子串,就分别用两个指针begin和end来标记它,并且每当处理完一个数字子串,就将新的起点设在上一次数字子串结尾的后一个的字符上,直到起始位置的字符为空,则遍历结束。

#include <stdio.h>

void main (void)

char a[15]='0','-','1','2','3','-','4','1','5','6','2','-','4','\\0','\\0';

int b[10];

int i,j;

j=0;

for(i=0;a[i]!='\\0';i++)

if(a[i]>='0'&&a[i]<='9')

b[j]=a[i]-'0';

j++;

for(i=0;i<j;i++)

printf("b[%d]:%d\\n",i,b[i]);

参考技术B #include <stdio.h>
void main()

char str[80],digit[80];
char *ps;
int i=0;
gets(str);
ps=str;
while(*ps!='\\0')

if(*ps>='0'&&*ps<='9')

digit[i]=*ps;//充入digit中
i++;

ps++;//ps后移

digit[i]='\\0';//在字符串最后填一个'\\0'作为结束符
printf("%s\\n",digit);

参考技术C #include <stdio.h>
void main()

 char str[80],digit[80];
 char *ps;
 int i=0;
 gets(str);
 ps=str;
 while(*ps!='\\0')
 
  if(*ps>='0'&&*ps<='9')
  
  digit[i]=*ps;    //找到数字,存放到数组digit里
  i++;
  
  ps++;    //ps指针指向字符串下一个字符

digit[i]='\\0';    //为了能用%s输出,digit在末尾要加一个结束字符'\\0'
   printf("%s\\n",digit);

本回答被提问者采纳
参考技术D 楼主采纳我吧

#include <stdio.h>
void main()

char str[80],digit[80];
char *ps;
int i=0;
gets(str);
ps=str;
while(*ps!='\0')

if(*ps>='0'&&*ps<='9')

digit[i]=*ps;//若当前字符是数字字符,保存到digit【i】里面,并且i的下标加1
i++;

ps++;//不管是不是,判断完当前的字符*ps之后,ps++,表示移动到下一个字符判断

digit[i]='\0';//给保存数字字符的字符数组加上个结束符号‘\0’,因为printf(%s)是以'\0'表示字符结束的

以上是关于C语言 将用户输入的字符串中的所有数字提取出来的主要内容,如果未能解决你的问题,请参考以下文章

c语言中,如何将字符串数组中的52提取出来,并转换为int类型

C语言编程:从字符串中提取数字

C语言提取字符串中的所有数字

输出一个随机字符串中的数字之和-Python

C语言怎么把字符串中的某一部分提取出来?

如何提取编辑框控件用户输入的内容并对其转换/比较?(c语言 API)