|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
输入一个以回车结束的字符串(少于80个字符),将其中第一次出现的连续的数字字符(0..9)转换为整数,遇到非数字字符则停止。
输入
输入一个以回车结束的字符串(少于80个字符)。
输出
将其中第一次出现的连续的数字字符(0..9)转换为整数,遇到非数字字符则停止。
例如:输入字符串:“x+y = 35+x+9”,则输出的整数是35。
这是报错
Expected | Yours
0 / -1390
==============================
========[test.out]=========
Expected | Yours
35 / 410
#include <stdio.h>
#include <string.h>
int main() {
char str1[300],str2[300];
int i;
int num=0;
int j=0;
gets(str1);
int len=strlen(str1);
for(i=0; i<len; i++) {
if(str1[i]>='0'&&str1[i]<='9') {
str2[j]=str1[i];
j++;
if(str1[i+1]<'0'||str1[i+1]>'9'&&str1[i-1]=='-')
break;
}
}
for(i=0; i<strlen(str2); i++) {
num=num*10+str2[i]-'0';
}
printf("%d",num);
}
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- int res = 0, flag = 0, sign = 1;
- char str[300];
- scanf("%[^\n]s", str);
- int n = strlen(str);
- for(size_t i = 0; i < n; i++){
- if(str[i] >= '0' && str[i] <= '9'){
- res *= 10;
- res += str[i]-48;
- if(str[i-1] == '-') sign = -1;
- flag = 1;
- }
- else if (flag) break;
- }
- printf("%d", res*sign);
- return 0;
- }
复制代码
|
|