从键盘输入一个串,求从该串第i个字符开始的j个子串
步骤
(1)定义一个定长的数组
(2)gets得到字符串
(3)输入i,j的值
(4)进行判断有没有溢出等
(5)进行输出结果
在这里插入代码片 #include<stdio.h>
#include<stdlib.h>
void main(){
char Str[100];//定义一个字符数组
int length=0;
printf("输入一个字符串:\r\n");
gets( Str );//得到一个字符数组
for (length = 0; length < 100; length++){
if(Str[length]=='\0'){
break;
}
}
//运用for循环得到这个字符串的长度
int m,n,i,a;
printf("输入让字符串从哪位开始: ");
scanf("%d",&m);
printf("输入让字符串从开始的子串数: ");
scanf("%d",&n);
a=m+n-1;
//取到最后一个字符的位数
/*a是临界判断是否在字符串里*/
if(m>0&&a<=length){
//m>0因为字符从第一个开始的
printf("输入结果为\n");
for (i=0;i<n;i++){
printf("%c",Str[m+i-1]);
//m+i-1是因为字符数组第一位是0
}
//for循环输出想要的得到的数据
}
else{
printf("输入错误\n");
}
/*利用if-else的语句判断自己输入的m,n的结果在不在这个字符串里面。用这个语句可以防止数据出错,能够使程序相对来说不容易出错*/
printf( "\n");
}