从键盘输入一字符串与已知字符串(你的姓名首字母+学号)比较是否相等,若相等,则显示ok;否则,显示fail
时间: 2024-03-11 16:48:10 浏览: 61
好的,这是一个简单的字符串比较问题,以下是 C++ 语言实现的示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string input_str, known_str;
getline(cin, input_str); // 从键盘输入一行字符串
known_str = "C123456"; // 已知字符串
if (input_str == known_str) { // 比较两个字符串是否相等
cout << "ok" << endl;
} else {
cout << "fail" << endl;
}
return 0;
}
```
你可以将上面的代码复制到一个 C++ 编辑器中运行,输入你的姓名首字母+学号,程序会自动比较并输出结果。
相关问题
从键盘输入一字符串与已知字符串(你的姓名首字母+学号)比较是否相等,若相等,则显示ok;否则,显示fail用c语言
好的,以下是用 C 语言实现的代码示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char input_str[MAX_LEN], known_str[] = "C123456"; // 已知字符串
fgets(input_str, MAX_LEN, stdin); // 从键盘输入一行字符串
input_str[strlen(input_str)-1] = '\0'; // 将换行符替换为字符串结束符
if (strcmp(input_str, known_str) == 0) { // 比较两个字符串是否相等
printf("ok\n");
} else {
printf("fail\n");
}
return 0;
}
```
你可以将上面的代码复制到一个 C 编辑器中运行,输入你的姓名首字母+学号,程序会自动比较并输出结果。
汇编——从键盘输入一个字符串,用串操作指令判断是否相等
在汇编语言中,处理字符串并比较它们通常涉及到以下几个步骤:
1. **数据输入**:首先,你需要设置一个接收用户输入的缓冲区。通常,你可以使用`INT 21H`(在MS-DOS汇编语言中)的`0Ah`功能码来读取一个字符串。这个函数会返回一个包含字符串的内存地址。
```assembly
; 读取一屏幕行的字符到内存中的buffer
mov ah, 0Ah ; 设定函数号为0Ah,用于键盘输入
lea dx, buffer ; 将缓冲区的地址放入dx寄存器
int 21h ; 调用中断服务程序
```
`buffer`是一个预定义的数组,用于存放字符串。
2. **保存长度**:读取完字符串后,需要记录字符串的实际长度,因为有些字符可能会有结束标志(如`\0`)。
```assembly
mov si, buffer ; 设置SI为缓冲区的起始地址
mov cx, 0 ; 初始化计数器cx为0
read_loop:
lodsb ; 把下一个字节读入AL然后送AX的低8位
cmp al, 0 ; 如果遇到'\0',则结束循环
je end_read
inc cx ; 字符串长度加1
jmp read_loop ; 继续读取直到结束
end_read:
```
3. **字符串比较**:为了比较两个字符串,可以将第二个字符串的指针也设为`si`,然后逐个比较字符直到找到差异或者遍历完其中一个字符串。
```assembly
lea di, second_string ; 第二个字符串的地址
compare_loop:
mov al, [si] ; 取出第一个字符串的字符
cmp al, [di] ; 与第二个字符串的对应位置字符比较
jne strings_not_equal ; 如果不相等,则跳转
inc si ; 移动到第一个字符串的下一个字符
inc di ; 移动到第二个字符串的下一个字符
cmp si, end_first_string ; 判断第一个字符串是否已遍历完
jae strings_not_equal ; 如果是,则两字符串不等
cmp di, end_second_string ; 同理判断第二个字符串
jae strings_equal ; 都遍历完则相等
strings_equal:
; 执行相等的操作...
jnz compare_loop ; 循环继续直到不相等
strings_not_equal:
; 执行不相等的操作...
```
这里假设`second_string`是第二个待比较的字符串,`end_first_string`和`end_second_string`分别是两个字符串的结束标记。
阅读全文
相关推荐
















