输入一字符串 把其中的字母和数字分开输出 用c语言编写

 我来答
百度网友b79519e
2011-03-04 · TA获得超过3399个赞
知道大有可为答主
回答量:1417
采纳率:100%
帮助的人:1328万
展开全部
#include<stdio.h>
void main()
{
char str[100];
char zimu[100];
char shuzi[100];
int i=0,j=0,k=0;
scanf("%s",str);
for(i=0;str[i]!='\0';i++)
if(str[i] >='0'&&str[i] <='9')//如果是数字,就放进shuzi数组
{shuzi[j]=str[i];j++;}
else //如果是字母,就放进zimu数组

{zimu[k]=str[i];k++;}
shuzi[j]='\0';//不要忘了结束符
zimu[k]='\0';
printf("%s\n",shuzi);//输出
printf("%s\n",zimu);
}

修改楼上的程序,经运行成功!!

关于素数的问题:
#include<stdio.h>
#include<math.h>
void main()
{
int i,m;
double k;
for(m=2;m<=100;m++)
{k=sqrt(m);
for(i=2;i<k&&m%i!=0;i++);
if(i>=k)
printf("%d ",m);
}

}
以上代码运行不正确、、
改为:#include<stdio.h>
#include<math.h>
void main()
{
int i,m;
double k;
for(m=2;m<=100;m++)
{k=sqrt(m);
for(i=2;i<=k&&m%i!=0;i++);
if(i>k)
printf("%d ",m);
}

}
手机用户36248
2011-03-05 · 超过37用户采纳过TA的回答
知道答主
回答量:171
采纳率:0%
帮助的人:0
展开全部
e if t = t + 1;改为
else t=t+1;因为字母,数字,空格的情况已经都考虑了,所以剩下的即为其他字符.
第二,主程序中这四个变量zm, kg, sz, qt没有初始化,应先都赋值为0.
第三,函数应定义为void fun(char c[], int &z, int &k, int &s, int &t)即把传值改为传引用,否则调用fun函数结束后,zm, kg, sz, qt的值仍为0.
希望会给你帮助.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三号床铺的四哥
2015-10-26 · TA获得超过3.8万个赞
知道小有建树答主
回答量:4186
采纳率:88%
帮助的人:200万
展开全部
其C语言程序为:
int str_length = strlen(str);
int str1[20];
char str2[20];
int mark1= 0 ;
int mark2 =0 ;
for( int i = 0 ; i < str_length ; i++ )
{
if( str[i] > 47 && str[i] < 59 )
{
str1[mark1] = str[i];
mark1++;
}
else if( (str[i] >= 65 && str[i] <= 90)|| (str[i] >= 97 && str[i] <= 122) )
{
str2[mark1] = str[i];
mark2++;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kala328
2011-02-26
知道答主
回答量:29
采纳率:0%
帮助的人:16.1万
展开全部
#include<stdio.h>
void main()
{
char str[100];
char zimu[100];
char shuzi[100];
int i=0;j=0;k=0;
scanf("%s",str[]);
for(i=0;str[i]!='/0';i++)
if(str[i]>'0'||str[i]<'9')//如果是数字,就放进shuzi数组
{shuzi[j]=str[i];j++;}
else //如果是字母,就放进zimu数组

{zimu[k]=str[i];k++;}
shuzi[j]='\0';//不要忘了结束符
zimu[j]='\0';
printf("%s",shuzi[]);//输出
printf("%s",zimu[]");
}

还有问题给我留言!
追问
麻烦高人帮我看下输出1-100之间素数的程序错在哪,谢谢
#include
#include
void main()
{
int i,m;
float k;
for(m=2;m<=100;m++)
{
k=sqrt(m);
for(i=2;i<k;i++)
{
if(m%i!=0)
printf("%d ",m);
}
}
}
追答
#include 
#include
void main()
{
int i,m;
float k;
for(m=2;m
#include
void main()
{
int i,m;
double k;
for(m=2;m=k)
printf("%d ",m);
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瑶啊瑶阿瑶U
2011-02-26 · 超过24用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:73.8万
展开全部
简单
int str_length = strlen(str);
int str1[20];
char str2[20];
int mark1= 0 ;
int mark2 =0 ;
for( int i = 0 ; i < str_length ; i++ )
{
if( str[i] > 47 && str[i] < 59 )
{
str1[mark1] = str[i];
mark1++;
}
else if( (str[i] >= 65 && str[i] <= 90)|| (str[i] >= 97 && str[i] <= 122) )
{
str2[mark1] = str[i];
mark2++;
}
}
追问
麻烦高人帮我看下输出1-100之间素数的程序错在哪,谢谢
#include
#include
void main()
{
int i,m;
float k;
for(m=2;m<=100;m++)
{
k=sqrt(m);
for(i=2;i<k;i++)
{
if(m%i!=0)
printf("%d ",m);
}
}
}
追答
素数:指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数
boo temp_mark = false;
for(m=2;m<=100;m++)
{
k=sqrt(m);
for(i=2;i<k;i++)
{
if(m%i == 0)
{
temp_mark = true;
break;
}
}
if( !temp_mark )
printf("%d ",m);
temp_mark = false;

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式