C语言 · 字符转对比

问题描述

  给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:
  1:两个字符串长度不等。比如 Beijing 和 Hebei
  2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
  3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
  4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
  编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。

输入格式

  包括两行,每行都是一个字符串

输出格式

  仅有一个数字,表明这两个字符串的关系编号

样例输入

BEIjing

beiJing

样例输出

3

作者笔记:C语言中的内置函数本人使用尚不熟悉。在需要用到输入的字符串的长度时候,用strlen函数并注意在输入字符串的时候放到字符数组里。

 1 /*
 2     1:两个字符串长度不等。比如 Beijing 和 Hebei
 3   2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
 4   3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
 5   4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
 6 */
 7 #include<stdio.h>
 8 #include<string.h>
 9 int main()
10 {
11     char ch1[10],ch2[10];
12     scanf("%s%s",ch1,ch2);
13     int len1,len2;
14     len1=strlen(ch1);
15     len2=strlen(ch2);
16     if(len1==len2)
17     {
18         int flag=1;//标识符
19         for(int i=0;i<len1;i++)
20             if(ch1[i]!=ch2[i])
21                 flag=0;
22         if(flag)
23             printf("2");
24         else{
25             flag=1;//标识符归置
26             for(int i=0;i<len1;i++)//判断,如果在忽略大小写的情况下是否还是不同
27             if(ch1[i]+32!=ch2[i] && ch1[i]-32!=ch2[i] && ch1[i]!=ch2[i]) flag=0;
28             if(flag)   printf("3");//符合条件3
29             else    printf("4");//符合条件4
30         }
31     }
32     else printf("1");
33 }
时间: 2024-11-08 17:18:44

C语言 · 字符转对比的相关文章

Android &amp;Swift iOS开发:语言与框架对比

转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text 从Android到Swift iOS开发:语言与框架对比 我从2009年开始做Android开发,开始接触Swift是在2014年底,当时组里曾经做过一个Demo App,感觉技术还

C语言——字符数组

在C语言编程中,我们一般用一个字符数组来存放一个字符串.例如,我们想存储这个字符串“http://i.cnblogs.com”,这个字符串一共有20个字符,要存放下这个字符串,我们需要一个长度为21的字符数组.为什么是21个而不是20个呢?在C语言中,字符串数组默认以'\0'结尾,所以我们一共需要一个长度为21的字符数组来存储这个变量. unsigned char text[21] = “http://i.cnblogs.com”; 既然我们已经知道了如何存放一个字符串,那下面我们来讨论另外几个

java语言字符编码问题

上代码 import java.io.*; public class EncodingDemo { public static void main(String[] args) { System.getProperties().list(System.out); try { FileWriter fw=new FileWriter("F:\\workspace\\JavaPrj\\test.txt"); fw.write("小超是个好孩子!"); fw.close(

C语言字符型数据(字符)

字符型数据的表示 字符型数据就是字符. 字符型数据是用单引号括起来的一个字符.例如: 'a'.'b'.'='.'+'.'?' 都是合法字符型数据. 在C语言中,字符型数据有以下特点: 字符型数据只能用单引号括起来,不能用双引号或其它括号. 字符型数据只能是单个字符,不能是字符串. 字符可以是字符集中任意字符.但数字被定义为字符型之后就不能参与数值运算.如'5'和5 是不同的.'5'是字符型数据,不能参与运算. 转义字符 转义字符是一种特殊的字符.转义字符以反斜线"\"开头,后跟一个或几

C语言-字符操作函数

1字符数组的初始化: 1.1 char string={'c','h','i','n','a'} 1.2char string={"china"}或者去掉{}即char string=“china" 1.3 strcpy(string,"china") 2字符串长度:字符串长度函数strlen(char string)=字符的个数+1(结束符"\0") 3输入与输出:printf("\s",string) scanf

C语言字符串匹配、goto语句、关机命令使用

1.程序执行修改窗口字体颜色命令: 2.程序执行修改窗口标题命令: 3.程序执行关机倒计时命令: 4.根据提示输入团队名称JYHACK TEAM 根据提示输入团队网址:http://bbs.jyhack.com 5.如果输入正确,则取消关机命令,并打开某一网页.    如果输入错误,那就等着关机吧. ps:当然对于略懂cmd命令的来说很简单,打开cmd,输入shutdown -a命令即可轻易解除. 源码如下: #include<stdio.h> //printf和scanf函数调用 #incl

C语言字符数组的定义与初始化

C 语言字符数组的定义与初始化 1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0' ).2.字符数组与字符串在c 语言中,将字符串作为字符数组来处

C语言字符编码处理

一.简介 由于历史原因,国际化的文字常常由于语言或者国家的原因使用不同的编码.libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换. 二.安装 http://www.gnu.org/software/libiconv/ 三.API iconv函数族有三个函数,原型如下: iconv_t iconv_open(const char *tocode, const char *fromcode); 此函数说明将要进行哪两种编码的转换,tocode

c语言字符数组的初始化问题

1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'}; 即把10个字符分别赋给str[0]到str[9]10个元素 如果花括号中提供的字符个数大于数组长度,则按语法错误处理: 若小于数组 长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' ). 2.字符数组与字符串 在c 语言中,将字符串作为字符数组来处理.(c++中