zoukankan      html  css  js  c++  java
  • 比较字符串(忽略空格,忽略大小写)

    总时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述

    判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。

    输入
    两行,每行包含一个字符串。
    输出
    若两个字符串相等,输出YES,否则输出NO。
    样例输入
    a A bb BB ccc CCC
    Aa BBbb CCCccc
    
    样例输出
    YES
    源码如下:
    #include <iostream>
    using namespace std;
    
    bool compareTwoStringIgnoreCases(string a,string b);
    int main(){
    	char  aString[30],bString[30];
    	cout<<"input StringA:";
    	cin.getline(aString,30);
    	cout<<"input stringB:";
    	cin.getline(bString,30);
    	/*aString="a A bb BB ccc CCC";
    	bString="Aa BBbb CCCccc";*/
    
    	if(compareTwoStringIgnoreCases(aString,bString))
    		cout<<"YES";
    	else
    		cout<<"NO";
    	cout<<endl;
    	return 0;
    }
    bool compareTwoStringIgnoreCases(string a,string b){
    	int i,j;
    	for (i=0,j=0;i<a.length() && j<b.length();)
    	{
    		if (a[i]==b[j]||abs(a[i]-b[j])==32)//ascii码:大写小写差32;空格的ascii码对应十进制为32
    		{
    			i++,j++;
    		}
    		else if (a[i] == 32)
    			i++;
    		else if (b[j] == 32)
    			j++;
    		else
    			return false;
    	}
    	return true;
    }
    

      ascii码在转换大小写时,有着不容忽视的力量;同时,cin标准输入的变体也很重要:一般cin标准输入是面相单词进行读取的,在这道题中,如果使用cin来读取输入的字符串,往往不能达到预期的效果,面相单词是主要的阻碍,当cpu检测到有空格输入时,就认为是一个字符串输入的结束,对于那些字符串中包含空格的,就是一个障碍。要解决这个问题,就用到了cin标准输入的变体:cin.getline(char*arr,int size):  从arr开始最多读取size个字符,但是遇到“换行符”就认为:字符串输入结束。

      这样我们就可完成面相行的字符串读取。

  • 相关阅读:
    Python常用模块学习
    如何在cmd下切换不同版本的Python
    Python3
    Python第二模块(文件和函数)
    Hibernate教程一览
    struts2框架一览
    Java正式day_04——嵌套循环
    AJAX
    JS+JQUERY
    Mybatis注意问题
  • 原文地址:https://www.cnblogs.com/ysugyl/p/6228999.html
Copyright © 2011-2022 走看看