c语言数组赋值中,如果不知道要输入几个数,怎么才能保证输入的数赋值给数组

共有 23986 人关注过本帖
标题:如何用c语言输入一个字符串,把里面连续的数字依次存放到一个数组中
等 级:新手上路
帖 子:46
结帖率:70%
&&已结贴√
&&问题点数:7&&回复次数:17&&&
如何用c语言输入一个字符串,把里面连续的数字依次存放到一个数组中
如何用c语言输入一个字符串,把里面连续的数字依次存放到一个数组中
如输入一个字符串:sd348ghi 35qeaio843ud843
则将348放在a[0],35放在a[1],843放在a[2],843放在a[3],统计有多少个整数,并输出这些整数。
void main()
char a[80],*p=a;
int b[80]={0},i=0,j=0,x=0; //!!!!
printf(&请输入一串字符\n&);
for(p=a;(*p)!='\0';p++)
if(((*p)&='0')&&((*p)&='9')) //!!!!
if(x==0) //这是什么意思,看不懂,求帮解答
b[i]=(*p)-48;
b[i-1]=b[i-1]*10+(*p)-48; //这个也看不懂
for(j=0;b[j]!=0;j++) //!!!!
printf(&%d &,b[j]);
printf(&共有%d个&,j);
printf(&\n&);
搜索更多相关主题的帖子:
来 自:神界
等 级:贵宾
威 望:341
帖 子:11109
专家分:43870
如果源代码能够正确运行并得到预期的结果&&可以研究每一句的代码含义&&否则没有研究价值
DO IT YOURSELF !
等 级:新手上路
帖 子:46
回复 2 楼 wp231957
其实我想做的是,输入一串字符串,如AB123C4D748,求输出123+4+748,并求出和,就是总做不出来,希望你能帮我一下,谢谢
来 自:神界
等 级:贵宾
威 望:341
帖 子:11109
专家分:43870
自己一点思路也没有嘛&&&这个问题不是很难 也不麻烦
DO IT YOURSELF !
等 级:新手上路
帖 子:46
回复 4 楼 wp231957
就是在把字符型‘123’转换成整型123后就不知道怎么办了,还有怎样分开123,4,748,这个没想到算法
来 自:神界
等 级:贵宾
威 望:341
帖 子:11109
专家分:43870
给你一段伪代码&&(这是最大限度了 否则大牛们又该批评我了 嘿嘿)
&&&&&&&&while(字符串指针非结束)
&&&&&&&&if(字符位于0和9之外) 指针下移
&&&&&&&&else
&&&&&&&&&&&&while(字符位于0和9之间含0和9)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& 整型数组元素=整型数组元素*10+(字符-'0');
&&&&&&&&&&&&&&& 指针下移
&&&&&&&&&&&&}
&&&&&&&&&&&&预存整型数组指针下移
DO IT YOURSELF !
等 级:新手上路
帖 子:46
回复 6 楼 wp231957
那好吧,我再想想,谢谢了
来 自:神界
等 级:贵宾
威 望:341
帖 子:11109
专家分:43870
例如:12345=((((0*10+1)*10+2)*10+3)*10+4)*10+5
DO IT YOURSELF !
等 级:版主
威 望:179
帖 子:4232
专家分:22270
以下是引用墨落成白在 08:55:50的发言:
其实我想做的是,输入一串字符串,如AB123C4D748,求输出123+4+748,并求出和,就是总做不出来,希望你能帮我一下,谢谢
只用 sscanf 也可以搞定,以下是演示代码,在gcc4.8.1(-std=c11)中编译测试通过。如果你用不支持当今C标准的编译器(例如VC)的话,自己简单修改一下代码就行。
程序代码:#include &stdio.h&
void foo( const char* str )
&&& int pos = <font color=#;
&&& sscanf( str, &%*[^0-9]%n&, &pos );
&&& const char* p = str+
&&& for( ; ; )
&&&&&&&&unsigned
&&&&&&&&pos = <font color=#;
&&&&&&&&int n = sscanf( p, &%u%*[^0-9]%n&, &val, &pos );
&&&&&&&&if( n != <font color=# )
&&&&&&&&&&&&break;
&&&&&&&&printf( &%u\n&, val );
&&&&&&&&if( pos == <font color=# )
&&&&&&&&&&&&break;
&&&&&&&&p +=
int main()
&&& foo( &AB123C4D748& );
&&& //foo( &123ABC456DEF789& );
&&& //foo( &ABC123DEF456GHI& );
&&& return <font color=#;
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
这个题目没有思路,表明不会把以前做过的简单题目综合起来运用解决相对复杂问题。
如下子问题你一定做过的:
1.循环扫描字符串
2.判断字符的类型(是否数字或字母等)
3.把一串&123&字符转换为数值
把上面那些综合起来,就能解决你的问题。这用不着什么最新语法,是非常非常非常原始的基础训练。
授人以渔,不授人以鱼。
版权所有,并保留所有权利。
Powered by , Processed in 0.031192 second(s), 6 queries.
Copyright&, BCCN.NET, All Rights Reserved例如声明一个数组 char num[10]; 输入一些数学例如 123456 如何将num[0]中值赋为1 num[1]中值赋为2 num[2]中值…… 以此类推。
int i = 1234;&br&char num[10];&br&itoa(i,num,10);&br&这时候,num[0] 是‘1’,num[1] 是‘2’,以此类推,num[4] 是‘\0’表示字符串结束
int i = 1234; char num[10]; itoa(i,num,10); 这时候,num[0] 是‘1’,num[1] 是‘2’,以此类推,num[4] 是‘\0’表示字符串结束
已有帐号?
无法登录?
社交帐号登录如何输入一组不定长度的数组
[问题点数:20分,结帖人xhcdream]
如何输入一组不定长度的数组
[问题点数:20分,结帖人xhcdream]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2015年4月 C/C++大版内专家分月排行榜第三
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2016年8月优秀大版主
2016年9月 总版技术专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 c语言结构体数组赋值 的文章

 

随机推荐