处理字符串,输入字符串(如sfsnd234dgt45moig10mf),将其中出现的三个数输出(输出:234 45 10)
int main() {
char str[100];
printf("请输入一组字符串:");
gets(str);
int data[20]; //存储要提取的整数
int count = 0;
int i = 0;
int tag = 0;
int temp = 0;
while (str[i] != '\0') {
if (str[i] >= '0' && str[i] <= '9' && tag == 0) { //整数中的第一位
tag = 1;
temp = 0;
temp = temp * 10 + str[i] - '0';
}
else if (str[i] >= '0' && str[i] <= '9' && tag == 1) { //整数中的第二位至最后一位
temp = temp * 10 + str[i] - '0';
}
else if (!(str[i] >= '0' && str[i] <= '9') && tag == 1) { //整数刚结束,到字母的第一位
data[count++] = temp;
tag = 0;
}
else //遇到字母,但不是从整数到字母,无需处理
;
i++;
}
for (int j = 0; j < count; j++)
printf("%d ", data[j]);
return 0;
}
运行结果: