本文主要是介绍输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,一次存放到一数组a中,例如, 123放在a[0],456放在a[1]..,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876将其中连续的数字作为一个整数,一次存放到一数组a中,例如,123放在a[0],456放在a[1]…统计共有多少个整数,并输出这些数
-
程序分析:先建立一个字符数组 a[ ],来输入字符串,若 a[ ]中的元素为字符’0’~‘9’,那么就进入循环,循环的目的是将字符存到整型数组中,一个字符一个字符的存放.
-
主要代码为:str[count] = str[count] * 10 + (*p - ‘0’);
-
举个例子:比如字符为:123 ;0=0*10+1; 1=1*10+2;
2=12*10+3;最后得到的是整数123,而不是字符串啦! -
代码如下:
#include<stdio.h>
int main()
{char a[50]={0};int str[50]={0};//一定要赋初值,不然后面执行的不是正确结果int count=0;printf("input a:");scanf("%s",a);char *p=a;while(*p){if(*p>='0' && *p<='9'){while(*p>='0' && *p<='9'){str[count]=str[count]*10+(*p-'0');p++;//这步是把字符串123放到整型数组里}count++;}p++;}printf("个数为:%d\n",count);for(int i=0;i<count;i++){printf("%d ",str[i]);}return 0;
}
-运行结果如下:
这篇关于输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,一次存放到一数组a中,例如, 123放在a[0],456放在a[1]..的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!