c语言11:从键盘上输入一字符串s,字符串s中包含若干个数字字符,将字符串s中的数字字符放入另一个数组d,最后将数组d中的字符串输出
在程序编辑区编写程序,给定程序功能是:
从键盘上输入一字符串s,字符串s中包含若干个数字字符,将字符串s中的数字字符放入另一个数组d,最后将数组d中的字符串输出。
例如:
输入
abc13def24
输出
1324
程序有两个空(1)、(2)需要补充完整。并将程序调试出所需的结果。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!
例如:
输入:
abc123de678
输出:
123678
题目分析
题目要求从键盘上输入一个字符串s,字符串s中包含若干个数字字符,需要将字符串s中的数字字符提取出来放入另一个数组d中,并最终将数组d中的字符串输出。
对于这个问题的解决,可以在循环中判断每个字符是否为数字字符,如果是,则将其复制到数组d中。具体来说,可以使用两个循环变量i和j,其中i用于遍历原始字符串s,而j则用于记录数组d中已经存储的元素个数。当s[i]是数字字符时,将其赋值给d[j],并将j加1,表示数组d中有一个新的元素。
当遍历完字符串s后,数组d中已经存储了所有的数字字符,此时可以使用puts(d)函数将数组d中的字符串输出。需要注意的是,为了保证字符串d能够正确输出,我们需要在数组d的最后一个元素赋予空字符'\0',以标志字符串终止。
也就是:使用
scanf
函数从标准输入读取字符串s,并通过循环遍历字符串s中的每个字符。当字符是数字字符时,将其赋值给数组d,并将j加1,表示数组d中有一个新的元素。最后,我们在数组d的最后一个元素赋值空字符'\0',并使用puts
函数将数组d中的字符串输出。
#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(s[i] >= '0' && s[i] <= '9')
{
d[j] = s[i];
j++;
}
}
d[j] = '\0'; // 在数组d的最后一个元素赋值空字符'\0'
puts(d);
return 0;
}
2301_77357499: 请问你知道怎么做了吗 我也到这步了
ZJD000_: nbnbnbnb
重生之我在井专学算法: 只能说这个题凑巧了
2401_87061420: 为什么我照的敲得代码没通过啊
2401_83785394: nb ,懂了,感谢大佬