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

C语言 将用户输入的字符串中的所有数字提取出来楼主采纳字符串提取数字c语言函数我吧
#include
stdio.h
void
main()
{
char
str[80],digit[80];
char
*ps;
int
i=0;
gets(str);
ps=str;
while(*ps!='\0')
【字符串提取数字c语言函数 从字符串中提取数字c语言】{
if(*ps='0'*ps='9')
{
digit[i]=*ps;//若当前字符是数字字符字符串提取数字c语言函数,保存到digit【i】里面字符串提取数字c语言函数 , 并且i的下标加1
i++;
}
ps++;//不管是不是字符串提取数字c语言函数,判断完当前的字符*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 。
扩展资料:
C语言中数字转化为字符串的方案:
使用sprintf函数来实现,如sprintf("%d", 123)可以得到字符串"123" 。
sprintf指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中 。sprintf 是个变参函数 。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性 。解决这个问题,可以考虑使用 snprintf函数,该函数可对写入字符数做出限制 。
参考资料来源:百度百科-atoi
C语言提取字符串中的所有数字#includestdio.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(itop)
{
printf("%ld",data[i]);
if(itop-1)//不打印最后一个逗号
printf(",");
i++;
}
printf("\n");
system("pause");
return
0;
}
字符串提取数字c语言函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于从字符串中提取数字c语言、字符串提取数字c语言函数的信息别忘了在本站进行查找喔 。

    推荐阅读