c语言从字符串中提取数字
⑴ c语言一串字符串中提取数字并相加的问题
#include<stdio.h>
main()
{
char
x;
char
input1='\0';
char
input2='\0';
int
number1=0;
int
number2=0;
printf("请输入字符串1:(输入?结束)");//输入?作为字符串1的结束符
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input1=x;
if(input1>='0'&&input1<='9')//每检查到一个数字就要乘10,进一位
number1=number1*10+input1-'0';//比如字符'9'-'0'之后的数是数字9
}
x='\0';//将字符x重置值,因为原来是等于?的
printf("请输入字符串2:(输入?结束)");
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input2=x;
if(input2>='0'&&input2<='9')
number2=number2*10+input2-'0';
}
printf("两串数之和为%d",number1+number2);
getch();
}//没有用到数组和指针,也没有调用函数,真不明作业这么多要求。。。
//希望能帮到你
⑵ C语言提取字符串中的所有数字
#include<stdio.h>
int
main()
{
char
str[1000];//保存读取到的字符串
long
sum=0,data[1000];
int
i=0,top=0;
printf("输入字符串:\n");
scanf("%s",str);
while(str[i]!='\0')//未到字符串末尾
{
if(str[i]>='0'&&str[i]<='9')//如果是数字
sum=sum*10+(str[i]-'0');//连续数字转换为数.
else
if(sum!=0)//保存这个数
{
data[top++]=sum;
sum=0;
}
i++;
}
if(sum!=0)//判断最后一个字符是否是数
data[top++]=sum;
printf("字符串中的数字是:\n");
i=0;
while(i<top)
{
printf("%ld",data[i]);
if(i<top-1)//不打印最后一个逗号
printf(",");
i++;
}
printf("\n");
system("pause");
return
0;
}
⑶ C语言如何把一个字符串中的数值全提取出放在一个数组里面
#include
int
main()
{
char
a[5];
int
i
=
1101;
sprintf(a,"%d",i);
printf("%s",a);
}
用sprintf时,char
a需要比整形数字多一位,因为最后一位需要添加结束符
⑷ 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】里面,并且i的下标加1
i++;
}
ps++;//不管是不是,判断完当前的字符*ps之后,ps++,表示移动到下一个字符判断
}
digit[i]='\0';//给保存数字字符的字符数组加上个结束符号‘\0’,因为printf(%s)是以'\0'表示字符结束的
}
⑸ C语言如何把一个字符串转换成数字
C语言中,可以使用atoi函数将字符串转换为数字,如atoi("123")可以得到数字123。
atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。
如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回0。特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi输入的字符串对应数字存在大小限制(与int类型大小有关),若其过大可能报错-1。
(5)c语言从字符串中提取数字扩展阅读:
C语言中数字转化为字符串的方案:
使用sprintf函数来实现,如sprintf("%d", 123)可以得到字符串"123"。
sprintf指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以考虑使用 snprintf函数,该函数可对写入字符数做出限制。
⑹ 编写C语言函数提取字符串里的整数
#include <stdio.h>
#define MAX_STR_LEN 10
int strToInt(char str[])
{
int i = 0;
int num = 0;
if(str[i]== '\0')
return -1;
else
if(!(str[i] <= '9' && str[i] >= '0'))
return 0;
else
{
while((str[i] <= '9' && str[i] >= '0')&& str[i] != '\0')
{
num = num *10+str[i]-'0';
i++;
}
return num;
}
}
int main()
{
char s[MAX_STR_LEN];
while(gets(s) != NULL)
printf("%d\n", strToInt(s));
return 0;
}
⑺ C语言中怎样从一串数字中提取一个数
可以先把这个数字改成一个字符串, 然后再把你要的第几个数字提出来即可, 如:
int i = 12345;
char ch[10];
sprintf(ch, "%d", i); //把i输出到字符串(和printf用法一样)
printf("%c\n", ch[2]); //输出这个字符串的第3个字符(下标是2)
就会输出3
⑻ C语言,从字符串中找出数字串
#include <string.h>
#include <stdlib.h>
void main(){
char str[400],a[30][30],*p;
int i=0,j=0,k,flag=0;
gets(str);
p=str;
for(;*p!='\0';p++){
if(*p>='0'&&*p<='9'){
a[i][j++]=*p;
flag=1;}
else if(flag==1){
i++;
j=0;
flag=0;}
}
for(k=0;k<=i;k++){
for(j=0;a[k][j]!='\0';j++)
printf("%c",a[k][j]);
printf("\n");}
}
⑼ c语言一串字符串中提取数字并相加的问题
#include<stdio.h>
main()
{
char x;
char input1='\0';
char input2='\0';
int number1=0;
int number2=0;
printf("请输入字符串1:(输入?结束)");//输入?作为字符串1的结束符
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input1=x;
if(input1>='0'&&input1<='9')//每检查到一个数字就要乘10,进一位
number1=number1*10+input1-'0';//比如字符'9'-'0'之后的数是数字9
}
x='\0';//将字符x重置值,因为原来是等于?的
printf("请输入字符串2:(输入?结束)");
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input2=x;
if(input2>='0'&&input2<='9')
number2=number2*10+input2-'0';
}
printf("两串数之和为%d",number1+number2);
getch();
}//没有用到数组和指针,也没有调用函数,真不明作业这么多要求。。。
//希望能帮到你
⑽ C语言 将用户输入的字符串中的所有数字提取出来
#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("请输入一个字符串 ");
scanf("%s",a);//输入字符串
for(i=0;i<10;i++)//计算a[6]中的数字个数
{
if(a[i]>='0'&&a[i]<='9')
m++;
}
if(m==0)
printf("字符串中没有数字 ");
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 ",z);
free(p);
}
kuo
(10)c语言从字符串中提取数字扩展阅读
C语言实现将字符串的数字提取为整数
#include<stdio.h>
intStringToInteger(char*p)
{
intvalue=0;
while(*p!='