• 比较字符串(忽略空格,忽略大小写)


    总时间限制: 
    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爬虫
    2016012007 柯招坤 散列函数的应用及其安全性
    四则运算——结对项目报告
    读构建之法第四、十七章有感(作业四)
    2016012007+小学四则运算练习软件项目报告
    读构建之法第一、二和十六章有感(作业二)
    我和软件工程的故事(作业一)
    2016012086+杨岚青+散列函数应用及安全性
    小学四则运算结对项目报告
    读构建之法第四章第十七章有感
  • 原文地址:https://www.cnblogs.com/ysugyl/p/6228999.html
Copyright © 2020-2023  润新知