c语言中如何取指定位置的字符串

2024-12-03 20:53:38
推荐回答(2个)
回答1:

STACK SEGMENT PARA STACK‘STACK‘BD 256 DUP (?) 【定义一个256字节的逻辑段】
STACK ENDS
DATA SEGMENT
STR1 DB ‘Branch1’,’ 【定义字节变量】
STR2 DB ‘Branch2’,’
STR3 DB ‘Branch3’,’
STR4 DB ‘Branch4’,’
ERR DB ‘Error’,’
DATA ENDS
CODE SEGMENT
ASSUME CS:DATA,SS:STACK,DS:DATA 【设定逻辑段段址所在的段寄存器】
START: MOV AX,DATA
MOV DS,AX
BEGIN: MOV AH,01H
INT 21H 【使用int21的分项功能,插入一个字符,并显示】
CMP AL,31H 【对比是不是数字1,2,3,4】
JE A1 【是的话分别跳转到A1、A1、A3、A4执行】
CMP AL,32H
JE A2
CMP AL,33H
JE A3
CMP AL,34H
JE A4
MOV DX,OFFSET ERR 【不是1234的话】
MOV AH,9
INT 21H 【显示错误信息】
JMP FINISH 【程序结束】
AI: MOV DX,OFFSET STR1 【输入的是数字1的话,显示字段1的内容,下同】
MOV AH,9
INT 21H
JMP ENTER 【跳转到回车处理】
A2: MOV DX,OFFSET STR2
MOV AH,9
INT 21H
JMP ENTER
A3: MOV DX,OFFSET STR3
MOV AH,9
INT 21H
JMP ENTER
A4: MOV DX,OFFSET STR4
MOV AH,9
INT 21
ENTER: MOV DL,0DH 【输出一个回车符号】
MOV AH,2
INT 21H
MOV DL,0AH 【输出一个换行符号】
INT 21H
JMP AGAIN 【跳转到again段处理,不在本程序段中】
FINISH:MOV AH,4CH 【带返回码结束程序】
INT 21H
CODE ENDS
END START

回答2:

char a[4];
int n=2;
char b[4];
char c[4];
strncpy(b,a,n);
sprintf(c,"%s",StringLeft(a,4-n));