
一道C语言题!会的请看看,谢谢
题目是这样的:编写一程序P2-219.C实现以下功能从键盘读入一行字符(约定:字符数≤127字节),将其中的数字字符以及这些数字字符的数量在屏幕上显示,注意:要求先显示这...
题目是这样的:
编写一程序P2-219.C实现以下功能
从键盘读入一行字符(约定:字符数≤127字节),将其中的数字字符以及这些数字字符的数量在屏幕上显示,注意:要求先显示这些数字字符的数量。编程可用素材:printf("Please input string:")...、printf("\nshu zi ge shu wei:...、printf("\nshu zi wei:...。
我的解答是:
#include <stdio.h>
#define N 128
int main(void)
{
char str1[N], str2[N];
int i, j;
printf("Please input string:");
scanf("%s", &str1);
for (i = 0, j = 0; i < N; i++)
{
if (str1[i] >= 0 && str1[i] <= 9)
{
str2[j] = str1[i];
j++;
}
}
str2[j + 1] = '\0';
printf("\nshu zi ge shu wei:%d", j + 1);
printf("\nshu zi wei:%s", str2);
return 0;
}
请问哪里错了呢? 展开
编写一程序P2-219.C实现以下功能
从键盘读入一行字符(约定:字符数≤127字节),将其中的数字字符以及这些数字字符的数量在屏幕上显示,注意:要求先显示这些数字字符的数量。编程可用素材:printf("Please input string:")...、printf("\nshu zi ge shu wei:...、printf("\nshu zi wei:...。
我的解答是:
#include <stdio.h>
#define N 128
int main(void)
{
char str1[N], str2[N];
int i, j;
printf("Please input string:");
scanf("%s", &str1);
for (i = 0, j = 0; i < N; i++)
{
if (str1[i] >= 0 && str1[i] <= 9)
{
str2[j] = str1[i];
j++;
}
}
str2[j + 1] = '\0';
printf("\nshu zi ge shu wei:%d", j + 1);
printf("\nshu zi wei:%s", str2);
return 0;
}
请问哪里错了呢? 展开
3个回答
展开全部
if (str1[i] >= 0 && str1[i] <= 9)这一句错了!
应该为if (str1[i] >= '0' && str1[i] <= '9')。
最后的输出printf("\nshu zi ge shu wei:%d", j + 1);
中j+1改为j,不需要再加1了!
还有建议前面定义str2[N]时进行赋值str2[N]={0},
否则程序的输出结果后会跟有怪异字符,不信你试试!
应该为if (str1[i] >= '0' && str1[i] <= '9')。
最后的输出printf("\nshu zi ge shu wei:%d", j + 1);
中j+1改为j,不需要再加1了!
还有建议前面定义str2[N]时进行赋值str2[N]={0},
否则程序的输出结果后会跟有怪异字符,不信你试试!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#define N 128
int main(void)
{
char str1[N], str2[N];
int i, j;
printf("Please input string:");
gets(str1); /*输入有错误,要改成*/
for (i = 0, j = 0; i < N; i++)
{
if (str1[i] >= 0 && str1[i] <= 9)
{
str2[j] = str1[i];
j++;
}
}
str2[j + 1] = '\0';
printf("\nshu zi ge shu wei:%d", j + 1);
puts(str2);/*输出也有问题,改成*/
return 0;
}
#define N 128
int main(void)
{
char str1[N], str2[N];
int i, j;
printf("Please input string:");
gets(str1); /*输入有错误,要改成*/
for (i = 0, j = 0; i < N; i++)
{
if (str1[i] >= 0 && str1[i] <= 9)
{
str2[j] = str1[i];
j++;
}
}
str2[j + 1] = '\0';
printf("\nshu zi ge shu wei:%d", j + 1);
puts(str2);/*输出也有问题,改成*/
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#define N 128
int main(void)
{
char str1[N], str2[N];
int i, j;
printf("Please input string:");
scanf("%s", &str1);
for (i = 0, j = 0; i < N; i++)
{
if (str1[i] >= '0' && str1[i] <= '9')
{
str2[j] = str1[i];
j++;
}
}
str2[j] = '\0';
printf("\nshu zi ge shu wei:%d", j );
printf("\nshu zi wei:%s", str2);
return 0;
}
#define N 128
int main(void)
{
char str1[N], str2[N];
int i, j;
printf("Please input string:");
scanf("%s", &str1);
for (i = 0, j = 0; i < N; i++)
{
if (str1[i] >= '0' && str1[i] <= '9')
{
str2[j] = str1[i];
j++;
}
}
str2[j] = '\0';
printf("\nshu zi ge shu wei:%d", j );
printf("\nshu zi wei:%s", str2);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询