jiangyu-159283 2021-05-25 12:29 采纳率: 75%
浏览 41
已采纳

请问这道题怎么做(用dev c++)(小白求助)

请编写一个fun函数,实现如下功能:将一个字符串中第一个连续数字转换成整数,作为函数值返回,否则返回0(程序的输入输出要有提示) 比如:字符串中的内容为:"abc123 def45gh",则函数的返回值为123。

  • 写回答

1条回答 默认 最新

  • cpp_learners 2021-05-25 13:25
    关注

    为什么不写注释?

    懒得写。。。 

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int fun(string str);
    
    int main(void) {
    	string str = "abc123 def45gh";
    
    	cout << fun(str);
    
    
    	return 0;
    }
    
    
    int fun(string str) {
    	int index = -1;
    	int score = 0;
    
    	for (int i = 0; i < str.length(); i++) {
    		if ((str[i] >= 48 && str[i] <= 57) && (i + 1 < str.length()) && (str[i + 1] >= 48 && str[i + 1] <= 57)) {
    			index = i;
    			break;
    		}
    	}
    
    	if (index == -1) {
    		return score;
    	}
    
    	score = str[index] - '0';
    	for (int i = index + 1; i < str.length(); i++) {
    		if (str[i] >= 48 && str[i] <= 57) {
    			score *= 10;
    			score += str[i] - '0';
    		
    		} else {
    			break;
    		}
    	}
    
    	return score;
    }
    本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大