c 语言 字母大小写转换
时间: 2024-09-30 20:00:26 浏览: 12
在C语言中,字母的大小写转换通常通过位运算和ASCII码值来实现。以下是一些基本的方法:
1. 转换大写字母到小写字母(`tolower()`类似效果):
```c
#include <ctype.h> // 包含ctype.h库,用于处理字符分类
char tolowercase(char ch) {
if (ch >= 'A' && ch <= 'Z') { // 判断是否是大写字母
ch = ch + ('a' - 'A'); // ASCII码'A'比'a'大32,所以加32即转成小写
}
return ch;
}
2. 转换小写字母到大写字母(`toupper()`类似效果):
```c
char touppercase(char ch) {
if (ch >= 'a' && ch <= 'z') { // 判断是否是小写字母
ch = ch - ('a' - 'A'); // ASCII码'a'比'A'小32,所以减32即转成大写
}
return ch;
}
```
相关问题
c 语言大小写字母转换
以下是C语言中大小写字母转换的例子:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char c = 'a';
printf("Original character: %c\n", c);
// 将小写字母转换为大写字母
c = toupper(c);
printf("Uppercase character: %c\n", c);
// 将大写字母转换为小写字母
c = tolower(c);
printf("Lowercase character: %c\n", c);
return 0;
}
```
输出结果为:
```
Original character: a
Uppercase character: A
Lowercase character: a
```
汇编语言字母转换大小写
汇编语言中,字母的大小写转换可以使用 ASCII 码表来实现。具体做法是将字母的 ASCII 码值加上或减去一个固定的值,从而实现大小写转换。
例如,将小写字母转换为大写字母,可以将其 ASCII 码值减去 32(即 0x20),而将大写字母转换为小写字母,则需要将其 ASCII 码值加上 32。
下面是一个简单的汇编程序示例,可以将用户输入的字符串中的小写字母转换为大写字母:
```
.MODEL SMALL
.STACK 100H
.DATA
inputStr DB 100 DUP('$')
.CODE
.MAIN PROC
; 读入用户输入的字符串
mov ah, 0Ah
lea dx, inputStr
int 21h
; 将字符串中的小写字母转换为大写字母
mov si, offset inputStr
mov cl, [si+1] ; 字符串长度
inc si ; 跳过长度字节
mov ch, 0 ; 计数器清零
convertLoop:
cmp ch, cl ; 判断是否处理完所有字符
jge done
mov al, [si+ch] ; 取出一个字符
cmp al, 'a' ; 判断是否小写字母
jl skipConvert ; 如果不是小写字母,则跳过转换
cmp al, 'z'
jg skipConvert
sub al, 20h ; 转换为大写字母
skipConvert:
mov [si+ch], al ; 将转换后的字符写回字符串
inc ch ; 计数器加一
jmp convertLoop
done:
; 输出转换后的字符串
mov ah, 09h
lea dx, inputStr
int 21h
mov ah, 4Ch
int 21h
.MAIN ENDP
END MAIN
```
在上面的程序中,我们使用了 21h 中断来读入用户输入的字符串,并使用了字符串指针和计数器来遍历字符串中的每个字符。如果字符是小写字母,则将其 ASCII 码值减去 20h,从而转换为大写字母。最后,使用 21h 中断来输出转换后的字符串。