#include "stdio.h"
#include "string.h"
main()
{
int n,m;
char s1[100];
printf("输入字符串:\n");
gets(s1);
printf("请输入n , m:\n");
scanf("%d %d",&n, &m);
char s2[m-n];
for (int i=0;i<m-n;i++)
{
s2[i]=s1[i+n];//s2即为所求
}
}
也可以单独写一个方法
char *fun(char s1[],int n,int m){
char s2[m-n];
for (int i=0;i<m-n;i++)
{
s2[i]=s1[i+n];//s2即为所求
}
return s2;
}
用的时候调用fun()方法就行
JAVA你投错版了,不早说
java更简单
String str1="0123456789";
int n=4,m=8;
String str2=str1.substring(n,m);
System.out.println(str2);
//可以得到 4567
//注意String的第一个字符是从0开始取,取到m的前一位
追问我要的是从第n个字节开始截到第m个字节结束,不是下标nm
追答算不算第m个字节?
n=4;
m=8;
不算就是str2=str1.substring(n-1,m-1);//得到"3456" ‘3’是第4个字节,6是第7个字节
算就是 str2=str1.substring(n-1,m);//得到“34567” ‘3’是第4个字节,‘7’是第8个字节
追问你这个是下标索引,不是字节数,我自己弄出来了,不过还是谢谢你!
追答这个str2求出来有什么不对的么?还要把每个字符按ASCll码分解成字节取么?那数据取出来怎么用啊?