如何通过空格把要输入的这些分开丢进函数呀 afd0d1cd2vda3cd43fd !zdcdvdacd a2b0d1c3d4v5d6a7c8d9 3$2456#7
编写一个函数int conv(char arr[])实现以下功能:在传入的字符串中提取所有数字字符('0'……'9'), 将其按先后顺序组装成一个整数作为函数的返回值,如果没有数字字符则返回0,arr[]中保存的是待提取的字符串。
然后在主函数中调用conv函数,将用户输入的字符串组装成整数返回。
注意:若不实现并调用conv函数,本题不得分。
输入格式:
第一行输入一个正整数n,然后在第二行中输入n个不超过20个字符的字符串(字符串中数字字符的个数为0到10个之间)。
字符串之间用空格间隔。
输出格式:
输出每个字符串中可以组装的整数,整数间以两个空格间隔。
输入样例:
4
afd0d1cd2vda3cd43fd !zdcdvdacd a2b0d1c3d4v5d6a7c8d9 3$2456#7
#include <stdio.h>
#include <ctype.h> // 用于使用 isdigit 函数
int conv(char arr[])
{
int result = 0;
// 扫描字符串中的每一个字符
for (int i = 0; arr[i] != '\0'; i++)
{
// 如果当前字符是数字字符,则将其加到结果中
if (isdigit(arr[i]))
{
result = result * 10 + (arr[i] - '0');
}
}
return result;
}
int main()
{
int n,m;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
char arr[20];
scanf("%s", arr);
m=conv(arr);
printf("%d ", m);
}
return 0;
}
#include <stdio.h>
// 定义函数conv,用于提取字符串中的数字字符并组装成整数
int conv(char arr[])
{
// 定义一个变量num用于保存组装的整数
int num = 0;
// 遍历字符数组arr
for (int i = 0; arr[i] != '\0'; i++)
{
// 如果当前字符是数字字符
if (arr[i] >= '0' && arr[i] <= '9')
{
// 将当前数字字符转换成整数,并将其加到num中
num = num * 10 + arr[i] - '0';
}
}
// 返回组装的整数
return num;
}
int main()
{
// 定义一个变量n表示有n个字符串
int n;
scanf("%d", &n);
// 循环读入n个字符串
for (int i = 0; i < n; i++)
{
// 定义一个字符数组arr用于保存输入的字符串
char arr[21];
scanf("%s", arr);
// 调用函数conv,将字符数组arr中的数字字符组装成整数并输出
printf("%d ", conv(arr));
}
return 0;
}
望采纳。