用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;
}

  • 闂:鍦C璇█涓,鎴戜粠瀛楃涓蹭腑鎻愬彇鍑烘墍鏈鐨勬暟瀛,鎬庝箞鎶婅繖浜涙暟瀛楀瓨璧锋潵鐒跺悗...
    绛旓細杩欐槸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<...
  • 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鐨勪笅鏍囧姞1 i++;} ps++;//涓嶇鏄笉鏄紝鍒ゆ柇瀹...
  • c璇█涓涓插瓧绗︿覆涓彁鍙栨暟瀛骞剁浉鍔犵殑闂
    绛旓細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璇█涓濡備綍鍦ㄤ竴涓瀛楃涓查噷鎼滅储鍑哄叾涓殑瀛楁瘝鍜鏁板瓧鍟?璋㈣阿
    绛旓細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[...
  • C璇█,鎬庢牱鍙鍙瀛楃涓蹭腑鐨勬暟瀛?
    绛旓細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) { //澶勭悊浣犵粰鍑虹殑瀛楃涓 ,...
  • 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...
  • C璇█涓,涓娈瀛楃涓鈥渃11234鈥濄傚浣鎻愬彇鍚庨潰4浣鏁板瓧,璧嬪肩粰涓涓...
    绛旓細杩欐槸鎴戝啓鐨勶紝璇曡繃浜嗭紝搴旇鍙互鐢細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 : ...
  • 鐢╟璇█鎻愬彇涓嬮潰瀛楃涓蹭腑鐨娴偣鏁:[-0.000000|0.000000|0.000000|2...
    绛旓細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 ...
  • 扩展阅读:获取字符串中的数字 ... js获取字符串中的数字 ... 只提取单元格中的数字 ... 从一串字符中提取数字 ... c语言将vkwc转换为数字 ... 将字符串中的数字取出 ... 提取字符串里的数字 ... 如何取字符串中的数字 ... c语言提取字符串中的数字并求和 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网