c语言大小写转化

今天学习汇编语言的时候遇到一个大小写转换问题,由于汇编中没法判断当前字符是大写还是小写,所以没法决定是加32还是减去32,但是ASICII有个规律,那就是大写字母的二进制位的第六位都是1,小写字母的第六位都是0,其他的都一样,所以可以直接and 0xDF进行大写转换,or 0x20进行小写转换,同样的在c语言中也可以这样去处理大小写转换,如下代码,已测试,完全正确。

#include "stdlib.h"
#include "stdio.h"
#include "string.h"


void main()
{

	char a[5] = "BaSic";
	char b[5] = "MinIX";
	int i = 0;

	for (; i < 5; i++)
	{
		a[i] = a[i] & 0xDF;
		b[i] = b[i] | 0x20;
	}

	system("pause");
}


### C语言中通过 `getchar` 实现字符大小写转换 在C语言中,可以通过标准库函数 `getchar()` 来获取用户的键盘输入,并利用ASCII码特性完成大小写的相互转换。以下是基于提供的引用内容以及相关知识的具体实现方式。 #### 使用 `getchar` 的大小写转换逻辑 当用户输入一个字符时,程序会判断该字符是否属于英文字母范围内的大写或小写字母。如果满足条件,则按照ASCII编码规则进行相应的数值调整来完成转换[^1]。具体来说: - 如果输入的是大写字母(即其ASCII值位于 &#39;A&#39; 到 &#39;Z&#39; 范围),则将其对应的ASCII值加上32即可获得相应的小写字母; - 若输入为小写字母 (&#39;a&#39; 至 &#39;z&#39;) ,那么只需从它的原始ASCII值里减掉32便能转变成对应的大写字母[^2]; 对于不符合上述两种情况的其他键入数据(比如数字或者特殊符号),可以设置提示信息告知使用者重新输入有效形式的数据项[^3]。 下面是完整的示范代码片段: ```c #include &lt;stdio.h&gt; int main() { char inputChar; printf(&quot;请输入一个字符:&quot;); inputChar = getchar(); if (inputChar &gt;= &#39;A&#39; &amp;&amp; inputChar &lt;= &#39;Z&#39;) { // Convert uppercase to lowercase by adding 32. putchar(inputChar + 32); putchar(&#39;\n&#39;); } else if (inputChar &gt;= &#39;a&#39; &amp;&amp; inputChar &lt;= &#39;z&#39;) { // Convert lowercase to uppercase by subtracting 32. putchar(inputChar - 32); putchar(&#39;\n&#39;); } else { printf(&quot;您输入的不是字母,请输入正确的格式!\n&quot;); } return 0; } ``` 此段代码首先包含了必要的头文件 `&lt;stdio.h&gt;` 。接着定义了一个名为 `main` 的入口函数,在其中声明变量用于存储来自终端的标准输入流中的下一个可用字符(`getchar`)的结果。之后打印一条消息请求用户提供单个字符作为输入源。依据所接收到的实际值执行不同的分支操作路径&mdash;&mdash;要么把大写变成小写、要么反之亦然;而对于那些既不属于任何一类别的其它种类按键事件,则给出错误反馈通知并结束整个流程运行过程[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值