当前位置:首页 » 编程语言 » c语言从字符串中提取数字

c语言从字符串中提取数字

发布时间: 2022-09-23 14:43:20

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!='')

{

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 ",val);

getchar();

return0;

}

热点内容
阿里云服务器外包 发布:2024-04-30 03:33:54 浏览:277
911标配的有哪些配置 发布:2024-04-30 03:18:38 浏览:159
如何访问阿里云服务器多个数据盘 发布:2024-04-30 03:08:45 浏览:187
ldd3源码 发布:2024-04-30 03:07:14 浏览:7
phpecho换行 发布:2024-04-30 02:21:51 浏览:904
高中ftp 发布:2024-04-30 01:51:48 浏览:873
林秋楠手机的密码是多少 发布:2024-04-30 01:46:31 浏览:276
python静态类方法 发布:2024-04-30 01:30:28 浏览:462
zblogphpasp 发布:2024-04-30 01:27:35 浏览:137
宏程序自动编程软件 发布:2024-04-30 01:15:01 浏览:417