c语言中如何取指定位置的字符串
比如:a4="1234"a12="12"a2="34"也就是说我要把a的前两个字符放在a1里,把a的后两位放在a2里,怎么做呢。我找了半天相关函数,死活找不到。...
比如:
a4="1234"
a12="12"
a2="34"
也就是说我要把a的前两个字符放在a1里, 把a的后两位放在a2里,怎么做呢。
我找了半天相关函数, 死活找不到。 展开
a4="1234"
a12="12"
a2="34"
也就是说我要把a的前两个字符放在a1里, 把a的后两位放在a2里,怎么做呢。
我找了半天相关函数, 死活找不到。 展开
展开全部
可以使用strstr这个函数:
函数名: strstr
功 能: 在串中查找指定字符串的第一次出现
用 法: char *strstr(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *str1 = "Borland International", *str2 = "nation", *ptr;
ptr = strstr(str1, str2);
printf("The substring is: %s\n", ptr);
return 0;
}
函数名: strstr
功 能: 在串中查找指定字符串的第一次出现
用 法: char *strstr(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *str1 = "Borland International", *str2 = "nation", *ptr;
ptr = strstr(str1, str2);
printf("The substring is: %s\n", ptr);
return 0;
}
2013-04-08
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-12-27
展开全部
char a[4];
int n=2;
char b[4];
char c[4];
strncpy(b,a,n);
sprintf(c,"%s",StringLeft(a,4-n));
int n=2;
char b[4];
char c[4];
strncpy(b,a,n);
sprintf(c,"%s",StringLeft(a,4-n));
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像c中有个strcut函数,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询