用c语言提取字符串中的数字 C语言提取字符串中的所有数字
excel \u63d0\u53d6\u5b57\u7b26\u4e32\u4e2d\u7684\u6570\u5b57\u5982\u4f55\u628a\u8868\u683c\u4e2d\u7684\u6570\u5b57\u5355\u72ec\u63d0\u53d6\u51fa\u6765\u5462\uff1f\u7528\u590d\u5236-\u7c98\u8d34\u5c31\u80fd\u641e\u5b9a\u3002
#include
int
main()
{
char
str[1000];//\u4fdd\u5b58\u8bfb\u53d6\u5230\u7684\u5b57\u7b26\u4e32
long
sum=0,data[1000];
int
i=0,top=0;
printf("\u8f93\u5165\u5b57\u7b26\u4e32\uff1a\n");
scanf("%s",str);
while(str[i]!='\0')//\u672a\u5230\u5b57\u7b26\u4e32\u672b\u5c3e
{
if(str[i]>='0'&&str[i]<='9')//\u5982\u679c\u662f\u6570\u5b57
sum=sum*10+(str[i]-'0');//\u8fde\u7eed\u6570\u5b57\u8f6c\u6362\u4e3a\u6570.
else
if(sum!=0)//\u4fdd\u5b58\u8fd9\u4e2a\u6570
{
data[top++]=sum;
sum=0;
}
i++;
}
if(sum!=0)//\u5224\u65ad\u6700\u540e\u4e00\u4e2a\u5b57\u7b26\u662f\u5426\u662f\u6570
data[top++]=sum;
printf("\u5b57\u7b26\u4e32\u4e2d\u7684\u6570\u5b57\u662f\uff1a\n");
i=0;
while(i<top)
{
printf("%ld",data[i]);
if(i<top-1)//\u4e0d\u6253\u5370\u6700\u540e\u4e00\u4e2a\u9017\u53f7
printf(",");
i++;
}
printf("\n");
system("pause");
return
0;
}
用c语言提取字符串中的数字的操作如下:
1、首先打开visual studio软件并创建一个新的c语言文件,如下所示。
2、然后导入C语言文件顶部的库内容,如下所示。
3、然后使用scanf函数接收用户输入的字符串。
4、然后使用printf函数打印用户输入。
5、运行程序后,弹出下图所示的命令界面,自动接收输入内容,按原样输出。
6、最后,如果接收到其他类型,例如整数,则需要将该类型更改为int,如下图所示,scanf中的接收类型将变为d%,并提取字符串中的数字。
工具\材料
电脑
方法如下
1、首先建一个PHP文档,定义一个包含数字的字符串。
2、接着使用定义正则表达式的匹配模式。
3、然后使用正则匹配函数“ preg_match_all()”。
4、根据判断的结果,在下图中加入打印。
5、最后保存内容就可以提取到数字。
1、首先打开visual studio软件,新建一个C语言文件,如下图所示。
2、接着在C语言文件的顶部导入库内容,如下图所示。
3、接着运用scanf函数接收用户输入的字符串。
4、然后利用printf函数打印一下用户输入的内容。
5、运行程序以后就会弹出如下图所示的CMD界面,输入内容就会自动接收到,然后原样输出内容。
6、最后如果接收其他的类型,比如整数,那么类型就需要改变成int,如下图所示,并且scanf里面的接收类型变为d%,提取字符串中的数字。
这个就是不用指针的.. 直接利用字符数组的下标来遍历.稍微做了些修改. 你看看#include <stdio.h>
void main()
{
char str[50];
int i=0; //i是数组下标. gets(str); //输入字符串.while(str[i]) //当数组元素不是字符串结束符时.执行while
{
if(str[i]>='0'&&str[i]<='9') //如果数组元素是数字. 就输出这个元素.
{
putchar(str[i]);
}
else
{
if(str[i-1]>='0'&&str[i-1]<='9') //否则判断前一个元素是不是数字.是的话输出一个空格.printf(" "); }
i++;
}
printf("\n");
}根据你的例子运行时截图如下:
#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;
}
绛旓細杩欐槸0~9鏁板瓧鐨勬彁鍙涓庢帓搴忥紱include<cstdio> include<algorithm> include<cstring> using namespace std;int main(){ char a[20];scanf("%s",&a);int j=0,n=strlen(a),b[20];for(int i=0;i<n;i++){ if(a[i]>=48&&a[i]<=58){ b[j]=a[i];j++;} } for(int i=0;i<...
绛旓細妤间富閲囩撼鎴戝惂 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鐨勪笅鏍囧姞1 i++;} ps++;//涓嶇鏄笉鏄紝鍒ゆ柇瀹...
绛旓細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();}//娌℃湁鐢ㄥ埌鏁扮粍鍜屾寚閽堬紝涔熸病鏈夎皟鐢ㄥ嚱鏁帮紝鐪熶笉鏄庝綔涓...
绛旓細int main(){ char str[1000]; //瀛楃涓 memset(str,1000,0);scanf("%s",str);char ch;int pos1(0),pos2(0);char s1[500],s2[500];memset(s1,500,0);memset(s2,500,0);for(int i=0;i<strlen(str);i++){ ch=str[i];if(ch<='9'&& ch>='0'){ //缁熻鏁板瓧涓暟 s1[...
绛旓細int i,j,m;scanf("%d%d%d",&i,&j,&m);int a[] = {i,j,m};for(int k = 0; k < 3; k++)printf("%d",a[k]);鐩存帴鎶婅緭鍏鐨勬暟瀛鏀惧叆鏁扮粍涓氨琛屼簡锛屼笉浼氭湁绌烘牸瀛楃銆
绛旓細鎶瀛楃涓瀛樻斁鍒版暟缁勯噷闈,涓涓竴涓瘮瀵癸紙寰幆锛夊悗杈撳嚭 鍒ゆ柇鏁板瓧锛歠or (i=0;i<n;i++){ if ((p[i]>='0') && (p[i]<='9'))printf();鍒ゆ柇瀛楁瘝锛歠or (i=0;i<n;i++){ if ((p[i]>='a') && (p[i]<='Z'))printf();...
绛旓細include<stdio.h> include<string.h> include<stdlib.h> define maxn 811111 char s[maxn];char *p;int cmp(const void* a, const void* b) { //C 璇█姣旇緝鍑芥暟锛岀敤浜巕sort return *(int *)a - *(int *)b;} void func(char *s, int length) { //澶勭悊浣犵粰鍑虹殑瀛楃涓 ,...
绛旓細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...
绛旓細杩欐槸鎴戝啓鐨勶紝璇曡繃浜嗭紝搴旇鍙互鐢細include <stdio.h> include <stdlib.h> include <string.h> int main() { char *a[] = { "c11234","c21234","c33112","c41234"};int i;for(i = 0; i < 4; ++i) { int value = atoi(a[i] + strlen(a[i]) - 4);printf("%d : ...
绛旓細include<stdio.h> include<stdlib.h> void main(void){ char a[]="-0.000000|0.000000|0.000000|2277141208067|-0.066992|0.027515" ;char *ph , *pt ;double f[6]; //杞崲鍚庣殑娴偣鏁版斁鍦╢鏁扮粍涓 int i = 0 ;ph = a ;do { f[i++] = strtod( ph, &pt) ;ph = pt + 1 ...