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

比如:
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;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  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
第2个回答  推荐于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));本回答被网友采纳
第3个回答  2013-04-08
好像c中有个strcut函数,
第4个回答  2017-12-27
#include<stdio.h>
int main()

相似回答