复制
收藏
提问
简洁
#include "stdio.h" #include "string.h" int main(void) { char s[80],d[80]; int i,j; scanf("%s",s); for(i=j=0;s[i]!='\0';i++) if( _____①______ ) { d[j]=s[i]; j++; } ____②_______; puts(d); return 0; }
3月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
这个C语言程序的目的是从一个输入的字符串中提取数字字符,并将这些数字字符存储到另一个字符串中。程序中有两个需要填充的部分,①和②。
对于①,我们需要一个条件判断,以确定当前字符是否为数字。在C语言中,可以使用isdigit()
函数来检查一个字符是否是数字。因此,①处应填写的条件是isdigit(s[i])
。
对于②,我们需要一个语句来结束字符串d
。在C语言中,字符串以空字符'\0'
结尾,所以我们需要在循环结束后将'\0'
添加到d[j]
的位置。因此,②处应填写的语句是d[j] = '\0';
。
完整的程序如下:
#include "stdio.h"
#include "string.h"
int main(void)
{
char s[80], d[80];
int i, j;
scanf("%s", s);
for(i = j = 0; s[i] != '\0'; i++)
{
if(isdigit(s[i]))
{
d[j] = s[i];
j++;
}
}
d[j] = '\0'; // 确保字符串d以空字符结尾
puts(d);
return 0;
}
这段代码首先使用scanf
函数读取一个字符串到字符数组s
中。然后,通过一个循环遍历s
中的每个字符,使用isdigit
函数检查每个字符是否为数字。如果是数字,就将其复制到d
数组中,并更新索引j
。循环结束后,将d[j]
设置为'\0'
以确保d
是一个有效的字符串。最后,使用puts
函数输出结果字符串d
。12
你觉得结果怎么样?