zoukankan      html  css  js  c++  java
  • 简单的字符处理(各种易错点)

    一直想整理一下一直以来所遇到的变态的不行的输入输出格式

    接下来稍作整理:

    链接:http://acm.dlmu.edu.cn/status.php?user_id=201358501149

     

    #include <iostream>
    #include <string>
    using namespace std;
    int main(){
    	int a,b,c;
    	int count = 0;
    	char ch1,ch2;
    	char ss[10];
    	//string ss;
    	while(~scanf("%d%c%d%c%s",&a,&ch1,&b,&ch2,&ss))//cin>>a>>ch1>>b>>ch2>>ss)
    	{
    		if(ss=="?")
    			continue;
    		if(strlen(ss)==1)//ss.length()==1)
    			c=(int) ss[0] - (int)'0';
    		else
    			if(strlen(ss)==1)//(ss.length()==2)
    				c=((int) ss[0] - (int)'0')*10+(int) ss[1] - (int)'0';
    			else
    				if(strlen(ss)==1)//(ss.length()==3)
    					c=((int) ss[0] - (int)'0')*100+((int) ss[1] - (int)'0')*10+(int) ss[2] - (int)'0';
    				else
    					continue;
    				if(ch1=='+'&&a+b==c)
    					count++;
    				else
    					if(ch1=='-'&&a-b==c)
    						count++;
    	}
    	cout<<count;
    	return 0;
    }
    

    此处值得注意的是,要想使用string类型作为存储结果的变量,就只能用cin 输入,因为scanf()是不能输入string的,但是用数组储存的话就可以了。

     

    下面在此使用sscanf()来输入,比较好的方法,以后注意用

    #include<iostream>
    using namespace std;  
    int main()
     {   
      char c[99];   
      int m,n,p,s=0;   
      while(scanf("%s",&c)==1)
       {   
        if(sscanf(c,"%d+%d=%d",&m,&n,&p)==3&&m+n==p)s++;   
        if(sscanf(c,"%d-%d=%d",&m,&n,&p)==3&&m-n==p)s++;   
      }   
      cout<<s<<endl;
      return 0;   
    }  
    
    关于sscanf()用法参考网址:<a target=_blank href="http://blog.csdn.net/u014665013/article/details/41088251">http://blog.csdn.net/u014665013/article/details/41088251</a>



     

  • 相关阅读:
    取三级分销上下级用户id
    Map集合
    Log4j
    异常
    逻辑运算符
    变量
    变量名命名规则
    命名法
    Nessus
    Nmap扫描工具
  • 原文地址:https://www.cnblogs.com/zswbky/p/5432041.html
Copyright © 2011-2022 走看看